Entradas

Software Libre: Documentos interesantes sobre libertad, software y desarrollo

Imagen
Entre los ensayos y libros de RMS (Richard Matthew Stallman) se toca constantemente el tema de "piratería" y libertad, Stallman cree que la piratería no existe, es un concepto creado en nuestra sociedad egoísta que coloca al dinero sobre el trabajo, al dinero sobre la amistad y al dinero sobre las necesidades de la persona, claramente esta concepción de la realidad egoísta no es humana, mas bien busca convertir a la sociedad en un conjunto de maquinas en pro de ideas y deseos sin trascendencia, ahora bien, respetando las concepciones religiosas y filosóficas existentes voy a recurrir a una pequeña estrofa del grupo musical El Barrio: "La vida es un tablero de ajedrez (...) con los años se termina la partida y dormimos los dos en el mismo cajón". Los conceptos que debemos desterrar de nuestro vocabulario están todos compilados en este primer documento que les ofrezco " Por qué el Software no debería tener propietarios " de unas pocas paginas, en resumen...

Metodologías para el desarrollo de software: Programación extrema (XP)

Imagen
Esta es la única metodología que aprendí, re aprendí y no necesite modificar nada, de hecho cuando hay proyectos en parejas o grupos surte un efecto impresionante, es importante que no se utilice para proyectos "imposibles" ya que el equipo necesario para los proyectos debe ser cada vez mas grande para que siga siendo eficiente la XP(eXtreme Programing), para proyectos imposibles tengo mi incremental plagiado,  la mayoría de software empresarial si se puede crear con XP ya que estos proyectos requieren que muchos ojos estén sobre el código, el trabajo en parejas sobre la misma computadora consigue que siempre cada linea de código esté pensada y revisada dos veces evitando que los problemas de lógica o descuido atrasen el proyecto. Según los autores que consulté a lo largo del tiempo la XP es el resultado de las mejores practicas de programación, algunas bases del sistema son: Simplicidad ya que cuando hacemos uso de la refactorización (mejorar la forma en que un método...

Metodologías para el desarrollo de software: Desarrollo Incremental

Imagen
Mi ultima entrada era sobre mi versión de esta metodología,  ahora voy a definir la de forma algorítmica a como lo hice como la anterior,  esta metodología se basa en crear modelos o prototipos muy rápidamente, su objetivo es conseguir programas utilizables en corto tiempo cosa que genera muchos errores y para solucionar esa problemática en cuanto aparecen errores se deben solucionar y una vez se ha terminado una etapa final, hay que reiniciar, es la forma mas usada para mantener programas existentes ya que no pueden existir errores por mucho tiempo y los mismos usuarios tienen total conocimiento sobre los bugs que se presentan, haciendo del usuario un perfecto asistente para el testeo del software. Como su nombre y la pequeña definición indican es un método de desarrollo recursivo con énfasis en el usuario,  no hay fase de pruebas por que el usuario se encargará de retroalimentar el proyecto y reportar fallas o incomodidades suyas, muchos de los proyectos fallan solo p...

Metodologías para el desarrollo de software: Desarrollo Incremental Plagiado (Una herencia mia para todos)

Imagen
Hoy quiero empezar con una serie de entradas en las cuales se explicarán las metodologías de diseño de software mas útiles que he podido estudiar y practicar, el desarrollo incremental según yo, como dice en el titulo, lo he modificado y considero que ninguna metodología de desarrollo va a dar los frutos necesarios por si misma, cada proyecto es diferente y no creo que una metodología invariable sea capaz de  cumplir con los objetivos de todos los proyectos, es por tanto una necesidad que el equipo o desarrollador se adapte a cada proyecto usando como base alguna de las metodologías de desarrollo. El método incremental como tal lo quiero tratar después, tomé esa idea por que es mas básica que su hijo mayor, el SCRUM, la idea de hacer un gran proyecto con pocas personas fue la que me empujó a modificar el desarrollo incremental para que yo solo tuviera la posibilidad de finalizar un proyecto de tamaño impresionante e imposible para una sola persona, prueba de lo complejo que es l...

Beneficios de la lectura despues de no leer durante años

Desde hacía varios años dejé de leer, cuando estaba en el colegio no necesitaba estudiar, solo recopilar la materia y leerla antes del examen por que no me importaba el 90% de lo que me estaban enseñando, gracias a Borges me di cuenta que es importante olvidar las cosas y volverlas a aprender para estar seguros de haberlas entendido, Bernard Shaw dijo:  "Mi educación fue muy buena hasta que el colegio me la interrumpió" Pareciera una frase totalmente intencionada a desprestigiar un sistema educativo especifico pero el asunto es muy diferente, nunca ha existido el maestro perfecto, aunque sean planeadas las clases existirá el momento donde el mejor maestro induzca al error, peor todavía resulta aprender solo con libros, empezando por que el lenguaje puede ser fácilmente alterado dependiendo del lector, muchas emociones nos pasan por la mente al escribir y el lector seguirá leyendo imparcialmente o peor aún, va a impregnar lo que lea con sus emociones, dando lugar a erro...

Vídeo Juegos: Arte, Ascenso y caída en la miseria

Hoy tengo ganas de escribir, tanto es así que agregué unas diez paginas a un borrador de libro al que intento dar forma al menos mediocre y a las 11 de la noche, estoy escribiendo esta entrada, posiblemente la publique en unos días, me gusta leer y re leer lo que escribo. Los que vivieron antes de los 90's (soy del 94 así que llegué algo tarde) pudieron apreciar y disfrutar el cambio de la tecnología informática así como la computación, puedo asegurar que antes de los 90, la tecnología no era para los simples mortales, más un arte arcana con tendencia a la brujería que la maravilla de la que hoy en día disfrutamos casi todos, como informático tal vez me intereso mas en estos temas, pero la tecnología actual es muy sencilla de utilizar, no es lo mismo conectar y desconectar cables para programar cada cosa que necesitemos hacer con la computadora que la informática moderna donde enviamos señales (programas, letras y pulsaciones de pantalla) a una serie de componentes tan bien pensa...

Algunas recomendaciones sobre la creación de software

En los últimos días he tenido muchos libros como "Clean code", todos deberíamos hacerle caso para no tener que reescribir o refactorizar paquetes desde el inicio, otras fuentes que tengo para hacer esta entrada son "Análisis y diseño de sistemas", "Desarrollo de software basado en reutilización" y por ultimo "Conceptos avanzados en desarrollo de software libre". Primero tengo que abordar el método que la mayoría de programadores me recomendaron sobre la creación de software, ya que nadie por más artista que sea será capaz de crear cosas sin inspiración y motivación, a fin de cuentas el software tiene al menos un objetivo y es necesario a pesar de no tener un objetivo propio, siempre mantener la practica y programar de vez en cuando, para facilitar la lectura voy a intentar resumir todo lo que he aprendido en puntos clave: 1- Plantear las ideas : Es necesario que todo esté planteado, incluso antes de empezar a programarlo el softw...

Mundos separados: Online y Ofline, ¿cuando estamos circunscritos a la hoja?

Imagen
Hace nada estaba viendo esta entrevista a un sociólogo (Zygmunt Bauman), en donde me dejó algo que nunca antes había notado, en serio el mundo ya no es solo uno, como el lo plantea tenemos el mundo conectado y el desconectado, ambos distintos, ambos reales, tangibles, con solo una condición, sin el desconectado no existiría la red. En el Online se puede rescatar el "efecto espejo", eso es algo en lo que vengo maquinando, resulta que no podemos saber nuestros errores hasta que los vemos en otra persona, es decir, nos reflejamos en el otro, a internet le agradezco quitarme de encima muchas ideas y problemas de actitud de tenía, recuerdo que cuando niño la gente me aconsejaba que tuviera cuidado por que había mucho loco con el mundo, una cosa bonita de internet es que lo he podido comprobar desde temprana edad y me hice una sana desconfianza ante aquellos que parecen... divergentes, ya que se da el chiste tengo que aprovecharlo, criado a partir del 94 con un abuelo que me atr...

Hacker's: la cultura de hacer lo necesario con las cosas que hay a mano

Quiero en esta entrada tratar el concepto de ser hacker , el vago promedio puede definirse le como hacker, por que, para ser vago se necesitan las tres condiciones básicas de Linus Torvalds para que alguien se convierta en hacker, ya hablaremos de esto después de definir, si nos vamos a la wikipedia nos encontraremos al hacker Richard Stallman (miren la cara de alegría al posar con el Ñu de peluche :v) que es imagen viva del hacking primigenio ya que pertenecía al Tech Model Railroad Club ( TMRC ) sitio de donde nace el termino, en los inicios de la informática el hacker era aquel que sabía mucho y le jugaba bromas a sus amigos, les hacia "trampas"(de ahí el anglicismo hack) que no tienen nada que envidiarle a los virus modernos, no había ningún trabajador en el club, solo vagos del laboratorio de inteligencia artificial queriendo pasar un buen rato entre amigos, la definición de hacker mas aceptada ya que se extrae del diccionario de los hacker's es la siguiente:  ...

Critica constructiva

Soy vago y se nota, sobre todo por que sin terminar la universidad ya domino Java, Python y C/C++ bastante bien, todos los aprendí en casa, aunque Java fue mi primer lenguaje y de hecho en la universidad me lo siguen enseñando, aun así, quien sea estudiante sabrá que; para aprender algo correctamente hay que dedicarle horas en casa. Como buen BOFHer me dí a la tarea de sacar conclusiones sobre los lenguajes que conozco e identificarlos según proyecto, para escoger cual es el que me conviene según magnitud del proyecto y orientación( eventos, objetos, métodos...). La magnitud de un proyecto es el tamaño de un programa, mas funciones requieren de mas lineas de código, un programa orientado a objetos siempre será mas grande que uno funcional. Entre los tres lenguajes que conozco, el que me ha sido mucho mas leve para hacer proyectos grandes es C++, a pesar de que las compilaciones son mas lentas, el rendimiento del programa final vale la pena, aquí no todo son flores, cualquiera que t...