Si se molestan por algo sera….
08/06/2009 in Analisis, Curiosidades

Es muy común ver a los acérrimos defensores del software propietario defenestrar al software libre.
Pero en su ciega defensa se equivocan y confunden conceptos.
¿A que viene esto?. A una entrada en el portal meneame.
http://meneame.net/story/solucion-factura-electronica-facturae-microsoft-software-libre
Un desarrollador decidió “liberar” un complemento para MS Office 2007 para poder firmar facturas electrónicas que cumplan el estándar Español.
Hasta aquí todo bien, pero por empezar se lo catalogo como software libre.
Para que una pieza de software sea considerado libre debe cumplir con cuatro libertades básicas:
* La libertad de ejecutar el programa, para cualquier propósito (libertad 0).
* La libertad de estudiar cómo trabaja el programa, y adaptarlo a sus necesidades (libertad 1). El acceso al código fuente es una condición necesaria.
* La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).
* La libertad de mejorar el programa y publicar sus mejoras, y versiones modificadas en general, para que se beneficie toda la comunidad (libertad 3). El acceso al código fuente es una condición necesaria.
La licencia que mejor se ajusta a estas libertades es la GPL.
Este buen señor “liberó” su producto bajo una licencia propia de Microsoft.
La MS-PL, luego de muchas controversias esta licencia fue aceptada por la OSI, que nada tiene que ver con la Free Software Fundation.
La Free Software Fundation,si bien la acepta con reservas, determinó que es una licencia incompatible con la GPL.
Sus comentarios fueran bastante iracundos hacia los que comentamos en meneame, tratándonos de “gilipollas” “parásitos“.
Según este buen señor lo que determina que la licencia MS-PL sea mejor que la GPL es la cantidad de palabras que contiene la misma.
Lo siento pero un documento legal mientras mas claro, mejor. Y si es necesario escribir 10.000 palabras para que no queden medias tintas o dudas sobre la misma mejor.
Otro punto que destaca es que la MS-PL otorga mas libertades que la GPL.
Se debe referir a incluir código propietario o hacerla compatible con licencias de Microsoft similares como la MS-RL.
Lo mas gracioso de esto es que esta licencia ni siquiera es compatible con otras licencias Open Source como BSD o MIT (estas ultimas no cumplen con la sección 2(B) de la licencia MS-PL)
Por lo que si alguien desea incluir partes del código en su desarrollo y lo tiene licenciado con alguna de las anteriores no podrá hacerlo.
Pueden ver aquí una tabla comparativa de las principales licencias:
http://juanbenavides.info/2009/01/comparativa-de-licencias-para-proyectos-de-codigo-abierto/
Ahora analicemos un poco mas este complemento:
Lo primero que nos encontramos que esta desarrollado en .Net utilizando visual studio office tools.
¿y que nos encontramos?
Licencia bien cerradita y con restricciones.
Recordemos también que .Net esta sujeto a patentes de software y esta lejos de ser considerada libre.
Las librerías de .Net framework fueron liberadas bajo la licencia Microsoft Reference License (MS-RL) que se trata del tipo de licencia más restrictiva, permitiendo únicamente la visualización del código fuente, con el fin de ampliar conocimientos sobre el mismo y su desarrollo. No está contemplada la modificación o redistribución. Es utilizada básicamente para bibliotecas de desarrollo tecnológico. En palabras vulgares “se mira y no se toca”.
¿Que mas?
El complemento funciona solamente con MS Office 2007, por lo tanto podrán utilizarlo quienes adquieran una licencia de dicho producto.
En conclusión:
1- Desarrollado con componentes propietarios cerrados y sujetos a patentes
2- Uniplataforma, solamente para una versión de un producto específico.
3- El código por mas que este disponible no se puede utilizar en otros desarrollos que no sean compatibles con la licencia MS-PL
Por lo tanto este desarrollo puede ser considerado Open Source pero esta bastante lejos de ser libre.
ESTE TEXTO SE PUBLICA BAJO LICENCIA CREATIVE COMMONS BY-NC-SA 2.5 AR.

Por lo tanto, usted es libre de: 1) Copiarlo, distribuirlo y exhibirlo. 2) Hacer obras derivadas. Bajo las siguientes condiciones: 1) Debe dar atribución mencionando el nombre del autor y del LUG Zona Norte. En caso de las notas que no llevan firma, mencionar sólo el nombre del LUG.
2) Usted no puede usar esta obra con fines comerciales. 3) Si usted altera, transforma, o crea sobre este texto, sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.
Más detalles y texto legal de la licencia en: http://creativecommons.org/licenses/by-nc-sa/2.5/ar
LucasXIIHK said on 16/08/2009
Hola sechole!
Vi que sos amigo de Enzito, que cómico, no pensé que se juntasen los de su clase.
Sólo te quería avisar que mi perfil no es falsificado, para que no cometas el error la próxima que discutas con alguien con las ideas más claras que vos. Tengo 19, por eso mismo intento salir de la edad de piedra (entiendase por esto último el utilizar una rudimentaria consola de datos para realizar ciertas instalaciones), igual estoy plenamente agradecido con la comunidad: En base a sus desconocimientos generales del mercado de software y los concéptos básicos del desarrollo le dan más posibilidades a los desarrolladores serios de tener un trabajo digno con una paga que haga valer cada punto y coma en su código.
Un saludo!
sechole said on 18/08/2009
Lucas, asi que tenes 19 de verdad?. Entonces lamento que con tu corta edad seas de mente tan cerrada.
En ningún momento discutí contigo ni tengo el interés en hacerlo.
Simplemente leí el articulo que me dedicaste y despertó en mi una sonrisa. Sobre todo por la cantidad de incongruencias e inexactitudes.
También leí tu conversación con Enzo:
http://enzoenlamatrix.wordpress.com/2008/01/13/porque-windows-es-mejor-que-linux/
Me solidarizo con el autor porque realmente sos inaguantable.
También me solidarizo con maslinux.org:
http://maslinux.org/?p=789
Y Después de leer esto:
http://ubuntuforums.org/showthread.php?t=1170524
Llego a la siguiente conclusión:
Todas las tonterías que andas diciendo se caen por su propio peso.
Me parece que se te perdieron un par de libros por el camino.
LucasXIIHK said on 19/08/2009
jajajaja … libros? Mirá las recomendaciones que hice en el segundo link que pasaste, esos son libros que deberías leer antes de decir que dije “inexactitudes” (el de Parnas y el de Frederic Brooks Jr.).
Antes de seguir leyendo, sólo hacelo si sabés lo que es una abstracción de la realidad, si no directamente saltá al final e ignorá el resto del mensaje y saltá hasta el “saludos!”:
El principal problema, tanto tuyo como el de la mayoría de aquellos con los que discuto via blog es el siguiente: Hablan sin justificar y sin conocer.
Absolutamente ninguno (incluyéndote por supuesto) supo explicar que es calidad, y sin embargo hablan de ella como si supieran lo que es. Todos (nuevamente incluyéndote, y en tu respuesta puede verse), tachan mis afirmaciones de inciertas e incoherentes, pero no dan fundamento alguno a sus propias palabras. Y todos piensan que la mente abierta es sinónimo de Linux, y la mente abierta es la mente que puede captar en su completo un paradigma como el de orientación a objetos (capaz que te suena, esa programación en la que los if se consideran del pasado), y que conocen cosas tán básicas como las abstracciones, las encapsulaciones y los ocultamientos de información para el mapeo de la realidad, las cuales son escenciales al desarrollo, e ignorado por los “programadores libres”.
Espero de una vez por todas tener un diálogo decente con alguien capacitado en el campo pero que esté del “lado libre”, y que pueda de una vez por todas defender su sistema operativo de forma tal que sea atractivo para un desarrollador que apunta a hacer valer cada una de sus ideas.
Saludos!
sechole said on 30/08/2009
Lucas, ¿como sabes que en el software privativo hay calidad?
Mostranos, por ejemplo, el código fuente de Windows y lo auditamos.
Ah! ¿no podes?, ¿Entonces como sabes?
Te falta mucho camino por recorrer y entender como se mueve el mundo.
LucasXIIHK said on 27/09/2009
¿Tenés idea de que hablás cuando hablás de calidad? Prefiero tener poco camino hecho pero del bueno a mucho del malo. Demostrá donde está la calidad de algún software de caracter libre y seguimos hablando (es decir que contenga Corrección, Robustez, Extensibilidad, Reusabilidad, Compatibilidad, Eficiencia y Portabilidad). Seguramente te pido mucho, ya que aquellos que hacen Software Libre no pueden hacer Software de calidad porque deben violar si o si la Extensibilidad si desean obtener algo de ganancia del mismo. Los “desarrolladores libres” apuntan a obtener sus ingresos en base al mantenimiento, y cumpliendo con la extensibilidad el mantenimiento carece de sentido y existencia.
Igual te dejo una ayuda, Amarok y Firefox no cumplen con algunos factores de calidad, pero se acercan bastante, si buscás desarrollos similares posiblemente encuentres un soft de calidad de caracter libre y finalmente me cierres el pico.
Un Saludo!
sechole said on 27/09/2009
Lucas, seguis sin demostrar nada mas que te aprendiste de memoria un concepto.
No se de donde sacaste esa tonta idea que solamente se aplica la calidad al software cerrado.
Si fuera asi Windows seria un sistema operativo fantastico.
¿Corrección?, ¿¿Robustez??, ¿Extensibilidad?, ¿Reusabilidad?, ¿¿Compatibilidad??, ¿¿¿Eficiencia??? y ¿¿¿¿Portabilidad????
Por favor por el bien de todos volve a tu blog y no comentes mas por aca.
LucasXIIHK said on 27/09/2009
Tenés razón, pierdo el tiempo si discuto con alguien que piensa que software cerrado es sinónimo de “Windows”.
Yo no aprendo de memoria, tengo fama de tener muy mala memoria por cierto, se lo que es la calidad porque me dedico a desarrollar bajo los términos de la misma, sistemas que vencen preciosamente a la ley de la entropía del software y la de cambio continuo aplicando cosas tan básicas como la Ley de Meyer hasta elaboraciones más importantes como lo es la Construcción, Reconstrucción y Deconstrucción dinámica de tipos.
Lo que sí te dejo una pregunta: ¿Cómo es que hacés para desarrollar una abstracción de la realidad, o siquiera una concresión de la experiencia del usuario/cliente (mejor conocida como su ontología) sin aplicar ocultamiento de la información y encapsulación? He visto en varios foros o blogs “con pico” que tachan estos dos últimos términos (cualquiera sabe que básicos en lo que respecta al desarrollo) como basura.
Un saludo y gracias por la respuesta si es que hay una!
sechole said on 28/09/2009
Windows ES código cerrado.
No se que pretendes demostrar citando teoría básica de programación orientada a objetos.
Podes programar con el lenguaje que se te antoje, para la plataforma para que se te antoje, lanzar el desarrollo bajo la licencia que se te antoje.
No existe software que nazca con la cucarda “calidad grantizada” como pretendes demostrar.
Según Challet y Du para hacer un soft propietario de código cerrado de igual calidad que el soft libre harían falta muchos más desarrolladores de mucha mayor calidad que para el mismo programa siendo de soft libre. Principalmente se demuestra que en un modelo de soft libre la interacción entre usuarios y programadores hará que los fallos sean eliminados a mucha mayor velocidad que lo que un grupo de programadores de élite pudieran hacer.
http://arxiv.org/pdf/cond-mat/0306511
El tema es larguísimo de explicar. Aca tenes algunas presentaciones al respecto:
http://www.gwolf.org/files/qa_soft_libre.pdf
http://blackshell.usebox.net/pub/misc/ControlCalidadSL_Lliurex.pdf
Y aca tenes una herramienta que se encarga de la gestión de la calidad de código:
http://sonar.codehaus.org/
Oh no! es software libre!!
http://sonar.codehaus.org/downloads/
Nooo que horror!!!!! Lucas se va a cortar las venas!!!
LucasXIIHK said on 28/09/2009
Yo no me corto las venas si no tengo que pagar por un código, ustedes son los que se las cortan si tienen que pagar.
No existe herramienta sobre la tierra a parte de la mente humana que evalue al 100% la calidad, ¿O me vas a decir que esa cosa evalúa corrección ahora? Solo puede evaluar al 100% eficiencia.
Ahora tu afirmación no tengo que decir que está de más herrada en cuanto a las cantidades de desarrolladores. Si hablamos por los niveles de exigencia entonces si, un “desarrollador libre” tiene mucho menor nivel de exigencia en cuanto a código (no te tengo que explicar que el 80% de los linux que dan vueltas hoy por el “mercado” son super “home-made”), por lo que puede ser una menor cantidad de ellos de un desarrollo de “calidad” bajo los conceptos de la misma en su visión pobre. Pero si hablamos de niveles de calidad, con el ocultamiento y la encapsulación los niveles de complejidad aumentan, por lo que aquellos que desarrollan deben tener en claro absolutamente todo sobre la complejidad, su análisis y posterior abstracción, haciendo esto menos accesible para los de “pensamiento ligero”.
Hay que leer más Parnas y menos Challet y Du. Una buena cita al mismo y que da al caso sería: “[...]La complejidad, entendiéndose por esta el código, sólo debe llegar al usuario como una mera concreción de una abstracción por parte del desarrollador, siendo esta lo más simple posible[...]El usuario compra ejecutables. Mapeado a la realidad inmobiliaria, se puede entender de la forma siguiente: ‘El cliente compra viviendas, no planos’[...]“.
Te espero despues de la lectura a ver si aún pensás que es factible desarrollar con calidad sin ocultamiento! Un saludo!
P.S.: Intenta no repetir cosas como el:
“Nooo qie horror!!!!! Lucas se va a cortar las venas!!!” porque terminás demostrando inmadurez, lo cual invalida tus palabras.
ice said on 29/09/2009
Bueno, lei las respuestas, espero contestar tus dudas lucas y “sacarte de la edad de piedra”, en cuanto a soft se refiere, tanto como usuario, como asi tambien como futuro desarrollador de software que creo pretendes ser verdad?.
Voy a tratar de ser ordenado, como si del desarrollo de un gran soft se tratara, asi te aclaro punto por punto las cosas.
Vamos a definir de antemano algunos parametros generales para comprendernos mejor y no perdernos que te parece?.
Cuando ponga en una oracion:
VD = vos dijiste ( o sea alguna frase, idea o concepto que vos hayas expresado aqui mismo en el blog)
R = respuesta ( mi respuesta a tu sentencia, aclarando o al menos tratando de aclararte un concepto, idea y/o definicion que hayas planteado).
Ya de acuerdo, con la forma que vamos a tener de “operar” en este debate de ideas, comienzo con mi corolario.
VD= “Tengo 19, por eso mismo intento salir de la edad de piedra (entiendase por esto último el utilizar una rudimentaria consola de datos para realizar ciertas instalaciones)”
R= Me parece muy bien, te felicito por dicha iniciativa, pero quiero aclararte algo. una consola dista por mucho de ser rudimentaria, para muchas cosas, inclusive para instalar programas.
Te cito como ejemplos debian o ubuntu, distribuciones de GNU/Linux que utilizan un comando muy simple llamado apt-get para instalar, desinstalar, y reinstalar soft.
Si no te gusta usar la consola, tambien tenes otras maneras de instalar soft ( utilizando synaptic por ejemplo, una gui para apt-get).
tambien tenes muchas otras formas que no cito en este momento porque no vienen al caso, que con mucho gusto las voy a citar si las necesitas, o en su defecto podes pedirle a sechole que lo haga, se que el te explicaria con mucho gusto, el uso de dichas herramientas, poderosas y de gran calidad por cierto.
VD= “igual estoy plenamente agradecido con la comunidad: En base a sus desconocimientos generales del mercado de software y los concéptos básicos del desarrollo le dan más posibilidades a los desarrolladores serios de tener un trabajo digno con una paga que haga valer cada punto y coma en su código.”
R= No se bien a que te referis con esto, el soft libre hace las cosas de otra forma, no digo ni mejor ni peor, cada forma tiene sus pros y contras, el uso y/o programacion privativa o libre es gusto de cada uno, no me meto en este tema porque es una discusion de nunca acabar, yo uso ambos, y me sigue gustando mas el soft libre que el privativo y por lejos pero eso ya es mi gusto personal y no trato de convencer a nadie, el que este interesado que pruebe, estoy casi seguro que no se va a arrepentir.
VD= “Absolutamente ninguno (incluyéndote por supuesto) supo explicar que es calidad, y sin embargo hablan de ella como si supieran lo que es”
R= Bueno otra vez entramos en terreno escabroso y en la tipica batalla privativo vs libre que no lleva a ningun lado tomese a ambos como opciones cada quien toma lo que le sirve mas, nadie se tiene que ofender por utilizar uno u otro. repito utilizo ambos pero por las libertades que me da prefiero el soft libre.
En cuanto a calidad la definicion de la RAE ( real academia de la lengua española) es y cito textualmente:
1. f. Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor. Esta tela es de buena calidad.
2. f. Buena calidad, superioridad o excelencia. La calidad del vino de Jerez ha conquistado los mercados.
Ambas afirmaciones definen a calidad como una cualidad de la cosa y/o servicio a la que se refiere.
En un soft para que sea de calidad se busca lo siguiente, esto visto desde el punto de vista de un usuario:
1- Estabilidad : que el soft tenga la menor cantidad posible de problemas, que lleguen a “colgarlo”, o nula ( casi imposible pero tengo la esperanza que algun soft lo logre alguna vez esto siendo privativo o libre no ha pasado, pero tengo que reconocer que la estabilidad de un soft libre es por el momento, muy superior a la de un soft privativo.
2- Adaptabilidad: Sobre todo en empresas, permitir modificar y adaptar el soft, a las necesidades de la misma, sin tener que andar pagando un desarrollo completamente nuevo, solamente para adaptar una funcion “extra” que no se necesitaba pero ahora si y es indispensable.
Lo que nos lleva al punto 3.
3- Que sea portable ( de hecho iba a poner portabilidad pero no estoy seguro que exista dicho termino y no me gusta inventar):
Simplificando que este programa pueda ser utilizado en no una sino varias ( o todas dependiendo del caso) las plataformas habidas y por haber.
Hay muchos mas puntos al respecto pero no me parece necesario nombrarlos todos, ya que seria una perdida de tiempo y son en cierta forma redundantes. En estos 3 aspectos, aunque te parezca mentira el soft libre sigue siendo muy superior al soft privativo ( sino mira adobe photoshop que tenes que comprar un soft nuevo completamente para poder utilizar una funcionalidad nueva, que tal vez no utilices. consumiendo con cada version cada vez mas cantidad de recursos de la computadora).
Te cito a gimp una version libre de lo que seria photoshop, la cual al tener el codigo fuente libre, permite a cualquiera darle trabajo a un desarrollador de soft independiente y de esta forma generar trabajo. De calidad por supuesto ya que este desarrollador va a poner su renombre y por ende va a necesitar poner mucho empeño en que dicha modificacion o fork del programa funcione perfectamente, con la menor o nula cantidad de errores posibles.
Por citarte un ejemplo que cumple con los estandares de calidad que el USUARIO busca y no el que te pueda dar cualquier libro tenes como ejemplo a emesene desarrollado en python y con una excelente extensibilidad mediante plugins lo que lo hace un gran desarrollo y de una excelente calidad.
VD= “se lo que es la calidad porque me dedico a desarrollar bajo los términos de la misma, sistemas que vencen preciosamente a la ley de la entropía del software y la de cambio continuo”
R= A ver, segun la ley de entropia del software que si vamos a lo practica es lo mismo que la ley de entropia que rige la vida pero vamos a usar tu definicion para no mezclar conceptos muuuuuuuuy pero muy similares.
Por definicion la entropia del software es :
La tendencia que tienen los sistemas al desgaste o desintegración, es decir, a medida que la entropía aumenta los sistemas se descomponen en estados más simples.
Cosa que es completamente natural, y que nada se escapa a ello, inclusive el software, es una ley universal, y por mas que no nos guste, el hombre no logro violarla, ( estaria bueno porque soy extremadamente desordenado en mi habitacion y no encuentro ni las llaves, si logras resolver eso, mandame tu hipotesis y la contrastamos en mi terrible pero maravilloso desorden)
Basicamente esta ley dice que, todo tiende al caos, a su auto destruccion, quedando el soft deprecado despues de una cantidad de tiempo x, por su mismo desgaste, e inutilizacion a traves del tiempo por falta de adaptabilidad ( cosa que se solucionaria con parches, y/o nuevas versiones, pero tomando esto en cuenta, ese ya no es el mismo soft sino una version modificada y arreglada del mismo, con lo cual llegamos a la conclusion que ningun software escapa a esta ley sagrada de la tendencia al caos).
VD= “Lo que sí te dejo una pregunta: ¿Cómo es que hacés para desarrollar una abstracción de la realidad, o siquiera una concresión de la experiencia del usuario/cliente (mejor conocida como su ontología) sin aplicar ocultamiento de la información y encapsulación?”
R= Es muy simple, no se oculta nada, queda oculto de por si con la gui, para el usuario, y completamente a la vista para el programador, en el codigo fuente, para hacer las modificaciones necesarias y volver a ocultarlo al usuario en la gui. asi no se queja que ve cosas que no entiende o que son muy complicadas.
VD= “Si hablamos por los niveles de exigencia entonces si, un “desarrollador libre” tiene mucho menor nivel de exigencia en cuanto a código (no te tengo que explicar que el 80% de los linux que dan vueltas hoy por el “mercado” son super “home-made”)”
R= Y claro, es lo logico que sean home-made porque estan desarrollados por gente para la gente y no por empresas y/o programadores que ponen lo que se les parece util a ellos, ete aqui el porque hay tantas distros la cantidad de distros es directamente proporcional a la cantidad de necesidades diferentes de la gente, por eso para encontrar el sistema que se ajusta mas a las necesidades de cada uno, por lo general se pasa por varias distros, esa es la idea de libertad, que tiene el mundo del soft libre, que elijas lo que mas te gusta y te lo quedes y si podes lo mejores, y sino que pidas a los desarrolladores que pueden, mejorarlo por vos ;) .
VD = “[...]La complejidad, entendiéndose por esta el código, sólo debe llegar al usuario como una mera concreción de una abstracción por parte del desarrollador, siendo esta lo más simple posible[...]”
R = Si se entiende perfectamente pero implementar una gui para simplificar el uso de un programa, sucede tanto en soft libre como en soft privativo, no veo cual es el problema en este punto, creo que ambos estamos de acuerdo.
VD = ” Te espero despues de la lectura a ver si aún pensás que es factible desarrollar con calidad sin ocultamiento!”
R = Esto no era para mi pero te lo respondo con gusto, es mas YA LO HICE ANTES Y POR SI NO TE QUEDO CLARO SI SI SE PUEDE!!!!.
Un Abrazo enorme y espero que llegues a ser un gran programador ya sea de soft privativo o libre, todo desarrollo es bienvenido mientras sea para mejor, logicamente que el soft libre siempre va a tener mi completo apoyo, y el privativo solamente voy a usarlo si no encuentro una alternativa libre dificil pero no imposible.
LucasXIIHK said on 30/09/2009
Hola y gracias por tu tiempo, lo dejo en orden numerado así no hago una “doble citación”:
1. La principal idea de el software es alejar al usuario de la complejidad, si hacés llegar a este algo como una consola de datos de seguro estás cometiendo un error grave. He usado Linux de la A a la Z y absolutamente ninguno hizo que la consola desapareciese de mi vida. Todos y cada uno en algún momento (sea por un driver, un software, un codec o una configuración) te obligan a entrar en la consola para operar de forma correcta.
2. El emesene es un programón en muchos aspectos, pero le falta robustez (y si no me crees intentá ejecutarlo en modo root). La Calidad del software es definida por básicamente 7 puntos:
a. Corrección: El funcionamiento del prgrama se ajusta a la especificación del usuario/cliente.
b. Robustez: El programa funciona en situaciones fuera de la especificación pero de hecho factible (es decir que es posible que suceda).
c. Extensibilidad: Adaptación al cambio en la especificación (el combate contra la ley de entropia del software y la ley de cambio continuo). Para lograrlo generalmente se aplica Meyer y Liskov, a eso se suma la técnica de DCRDoT (Dynamic Construction, Reconstruction and Deconstruction of Types – Construcción, Reconstrucción y Deconstrucción dinámica de tipos), y así se deja de lado el Mantenimiento en su entendimiento clásico.
d. Reusabilidad: Las entidades que forman parte del software se encuentran particionadas de una forma tal que son reusables en otros proyectos.
e. Compatibilidad: El software es “educado” con el entorno en el que se encuentra.
f. Eficiencia: El consumo de tiempo y espacio es el mínimo indispensable (estratégias logarítmicas y demás).
g. Portabilidad: El software ocupa solo lo necesario en disco.
3. La ley de la entropía del software escrita por Lehman dice: “A medida que un porgrama evoluciona, deviene más y más complejo y son necesarios más y más recursos para preservar y simplificar su estructura”. Para violar esta ley se aplica otra llamada Ley de Meyer, la cual dice: “Las entidades de software (clases, módulos, funciones, etc.) deberían estar abiertas para extensión pero cerradas a la modificación”. Muchos entendieron mal la ley y aplican técnicas imperativas las cuales permiten solo extender una vez, a la siguiente solo puede modificarse. La única manera de vencer la ley de entropía y aplicar Meyer es usando DCRDoT.
4. Está bien, pero el refinamiento sucesivo de la realidad para su posterior concresión en código tambien incluye una abstracción y una encapsulación, la cual es una mera simplificación para el desarrollador. La idea de el ocultamiento de la información no queda referido solo al usuario, si no tambien al desarrollador, ocultando aquello que no se desea ver (las conocidas cajas negras). Además en el paradigma que se viene (por no decir que ya está encima nuestro pero todavía nadie lo implementa) la encapsulación y ocultamiento son escenciales a la solución de los problemas: El paradigma de desarrollo de componentes.
5. Es cierto que uno de los ideales que más respeto de la comunidad es el hecho de que tiendan a la personalización y no estandarización del software, pero: ¿Verdaderamente pensás que una persona comun va a tender a buscar entre cientos de opciones en vez de tomar un estandar y quedarselo? Incluso siendo desarrollador lo siento como algo muy agobiante.
6. La sitación de esa frase de Parnas fue por una discusión que he tenido en los foros de Ubuntu en el cual me plantearon que siendo desarrollador de Soft Libre regalás el fuente a aquellos que les vendés el software, o directamente vendés el source para que ellos mismos lo compilen. Hacer llegar esa complejidad al usuario me pareció algo “retrogrado” que digamos.
7. Hecha la lectura de Parnas solo te queda averigüar de que trata el Paradigma de Desarrollo de Componentes para que entiendas a que me refiero con la encapsulación y ocultamiento.
Te dejo otro abrazo y agradezco tu tiempo, dedicación y cordialidad.
Saludos!
petato said on 30/09/2009
Ya se que no tiene nada que ver, pero creo que estas frases vienen bien para la discusión.
“La certeza absoluta es un privilegio de mentes incultas y fanáticas”
C. J. Keyser:
“Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad.”
“Intenta no volverte un hombre de éxito, sino volverte un hombre de valor.”
Albert Einstein
Oscar-Colombia said on 07/10/2009
Esto va para LUCAS, te comento que soy un usuario comun sin saber un pito de lo que tu sabes, pero la verdad desde que conoci a GNU/Linux Gentoo no he sido capaz de dejarlo, ṕor muy complicado que sea y por mucho uso de consola que exista lo prefiero asi, no usar un sistema cerrado lleno de vulnerabilidades y que si abres cierta pagina sabes que vas a tener un virus.
Utilizo mucho las memorias usb para mis trabajos, y cuando llego a mi equipo personal lo unico que hago es sacar virus de alli sin infectar mi grandioso y compilado con terninal Gentoo
LucasXIIHK said on 08/10/2009
¡Hola Oscar! Cuatro cosas solamente para vos:
1. Si verdaderamente fueses un usuario común no lo preferirías. La palabra común deviene de que entras dentro de los parámetros promedio que una sociedad impone, y la mayoría del mundo prefiere Windows, prefiere la simplicidad, y prefiere la compatibilidad.
2. No hay virus para Linux porque no tiene gracia hacerlos: La principal idea de hacer un virus es demostrar al mundo que sos mejor desarrollador que aquel que hizo el sistema, y con linux se lo demostrarías a unos tantos, y el código es abierto por lo que no presenta desafía alguno. Además con Linux se pueden hacer virus más interesantes, como por ejemplo una modificación al GRUB que cargue un sistema alterno con nucleo Linux que altere todos los ardware de la PC en segundos.
3. Un usuario verdaderamente común prefiere tener que lidiar con un virus a que su sistema no reconozca su placa de video (como sucede con Ubuntu y las placas Intel, o DSL con algunas placas antiguas), o que deba abrir una consola para instalar ciertas cosas, o que sus juegos favoritos no funcionen, o que un programa de música que adora no funciona, etc.
4. Si fueses verdaderamente un usuario común preferirías entornos como Ubuntu, Fedora, Mandriva, Red Hat, Mint …. Linux pensados para usuarios finales, aunque todavía les falte, no Gentoo.
Un saludo!
P.S.: Hice este comentario mismo antes y se ve que bloquearon el acceso de mi otro mail, si van a hacerlo tengan la amabilidad de avisar al resto para denotar que no es que yo no contesto, si no que no me dejan contestar.
sechole said on 13/10/2009
Ice, tu exposición es magistral y demuestra un entendimiento del tema.
Lucas, lo único que demostras es que te aprendiste la teoría pero nada mas, no sirve que te aprendas algo de memoria si no lo sabes aplicar.
En varios puntos de tu discurso demostras ignorancia:
1-lo que tanto pánico te da, la consola, existe en Windows, Linux y MAC.
Para un usuario normal es transparente. Pero si se te presenta un problema si o si vas a tener que utilizarla.
Caso concreto: ¿Como diagnosticas una conexion sin una consola?
Para vos es retrogrado.Decile a los técnicos de speedy, arnet y fibertel que están equivocados cuando le hacen abrir al usuario una “consola” para hacer pruebas.
2-No sabes el concepto de Robustez. Te basas en el supuesto de que emesene no puede ejecutarse como root.
Cosa que esta perfectamente contemplado que sea así por un tema de seguridad.
Si te fijas en el código del archivo controller.py
te vas a encontrar las siguientes lineas:
if os.name == ‘posix’ and os.getuid() == 0:
print “I refuse to run as root”
return
3-Hablas de cajas negras y ocultar partes al desarrollador. Lo siento pero eso no se aplica al software libre.
Si buscamos calidad, el codigo debe ser lo mas claro, conciso y sin medias tintas para que el día de mañana lo pueda mantener, continuar y mejorar otro.
4-Confundís estándar con imposición. el usuario no elige porque no sabe elegir y no lo educaron para que lo haga.
Cosa que esta cambiando y un claro ejemplo es el aumento de uso de otros navegadores en vez del que pueda venir “defacto” en Windows por ejemplo.
5-Tu intervención en el foro de ubuntu fue lamentable. No entendes el concepto de software libre. Mezclas venta con regalo.
Ni venta ni regalo, se brinda servicio y se cobra por él. Tenes muy arraigado el concepto de ventas de licencia.
Por supuesto que se le va a entregar el código al usuario final. No es ninguna barbaridad ni aberración, esta contemplado en cualquier licencia Libre.
6-Negas que sirvan las herramientas de apoyo, lo que demuestra que jamas participaste en un proyecto de envergadura.
Dichas herramientas forman parte del ciclo de desarrollo y ayudan a asegurar la calidad.
¿Como sincronizas cambios del código?
¿Como manejas las diferentes versiones?
¿Como te aseguras el feedback?
¿sistema de reporte de errores?
¿Comunicación entre los desarrolladores?
¿Y con el usuario?
Si no existieran herramientas como bugzilla, debbugs, gnats, gits, CVS – Concurrent Versioning System
SVN – Subversion, arch y otros cualquier desarrollo fracasaria.
Lo que vos propones es volver a la década del 70 o principios de los 80, donde estas herramientas no existían.
7-Tu afirmación sobre los virus denota total y completo desconocimiento de arquitectura de sistemas operativos.
¿Grub?. ¿Un kernel modificado?. ¿un virus que recompile el kernel modificando el hardware?.
O no te supiste expresar o tenes un serio problema de mezcla de conceptos básicos por lo que deberías recursas algunas materias del primer año de la carrera de Sistemas.
Todavía no termino de comprender tu insistencia sobre conceptos básicos sobre diseño orientado a objetos que cualquier desarrollador de cualquier arquitectura, tenga la orientación que tenga conoce y tu asociación con la calidad.
La calidad del código se mide por:
-Facilidad de lectura.
-Facilidad de mantenimiento, prueba, depuración, corrección,
-modificación y adaptabilidad.
-Baja complejidad.
-Bajo consumo de recursos.
-Número reducido de alertas de compilación
Por otro lado molesta lo que decís del supuesto baneo.
¿No se te ocurrió que si te quisiéramos banear ya lo habríamos hecho hace rato?
¿No sera que a esta altura te banearon de varios blogs por lo que figuras en la lista negra de akismet, que es plugin que esta instalado en este blog?
Tampoco se entiende tu desvirtue total en una entrada sobre licenciamiento. ¿Que tiene que ver la licencia con la calidad?
A partir de ahora no se aceptan mas comentarios fuera de lugar en esta entrada. Si quieren seguir las absurdas discusiones con Lucas vayan a su blog que para eso lo creo.
LucasXIIHK said on 14/10/2009
jejeje …. Gracias por aclarar en todo sentido. Parecía que se ponía interesante pero volviste a las básicas de libro (lo cómico es que yo soy el que estudia de memoria supuestamente). Nos vemos por la red, Adios!
(7. No recurso sistemas, dije eso porque ya lo he hecho y es muy facil, intentalo: son unas 1200 lineas del kernel alteradas y tomas control de la refrigeración de una notebook).
sechole said on 27/10/2009
Deberias recursar.
No tenes idea de lo que es un virus.
Lo de las 1200 lineas del kernel es invento tuyo.
Para empezar ¿Como invadis el ring 0?
¿Como recompilas el kernel en tiempo de ejecución?
¿Como logras que se replique a otras maquinas?
¿No era mas facil tocar el proc?
Si queres modificar por ejemplo la velocidad del cooler en una Thinkpad
echo level 0 > /proc/acpi/ibm/fan
Desactive el fan….en un tiempo levanta temperatura y se cuelga…
Te ahorre un monton de lineas.