domingo, 24 de abril de 2016

The Open Source Paradigm Shift

En esta entrada hablaremos de un término poco escuchado pero que dice mucho y este es paradigm shift, o cambio de paradigma en español. Término introducido por Kuhn pare referirse a los cambios fundamentales en los conceptos básicos y prácticas experimentales de la ciencia.
Han existido varios cambios de paradigma, pero estos no son aceptados inmediatamente, si no que tiene pasar mucho tiempo para que esto pase; ejemplos de esto son los de Copérnico y Darwin. Pero en el mundo de la computación, resulta difícil comprender este concepto, un ejemplo claro que nos muestra es el de IBM, que tenía las "piezas" necesarias para dominar el mundo de las computadoras pero Microsoft vino a quitarle eso, ya que el software era más importante lo que terminó consumiendo a IBM. Con esta premisa nos introduce la relación que esta tiene con el software libre y es que muchas veces las reglas con las que jugamos en este escenario son anticuadas por lo que a veces la competencia gana; y esto es lo que trataremos de explicar. Para ello O'Reilly define el código abierto en tres pilares que son:

  • La mercantilización del software
  • Network-enabled collaboration
  • Software customizability (Software como un servicio)
Pero más allá de seguir las reglas, fue que no fueron capaces de adaptarse a este nuevo mundo tecnológico que fue la perdición para muchos. Aunque el código libre sigue siendo un dilema ya que unos están en contra y otros no. Este ha traído grandes beneficios a nuevas innovaciones y creaciones que según Alan Kay es la mejor manera de predecir el futuro.

En conclusión, estoy a favor del open source ya que trae consigo grandes beneficios tecnológicos pero para otros pensarían que no económicos, pero creo que ha permitido que grandes mentes contribuyan a un mejor desarrollo del software y estar siempre alerta de los nuevos cambios en este entorno.

jueves, 31 de marzo de 2016

The Code-Breakers

Free Software o también llamado FOSS es un término que no muchos saben que es, pero lo usan sin saberlo. Como en previos blogs, este concepto muchas veces es malentendido y creen que se refiere al precio, pero no, es más bien a las libertades que se tiene. Más tarde en vez de usar la palabra Free, se usó la palabra Open Source para evitar esta confusión.
Richard Stallman nos habla de las cuatro libertades para poder usar el Free Software.

Freedom 0 : La libertar para ejecutar software como quieras.
Freedom 1: La libertad de estudiar y cambiar el código fuente.
Freedom 2 : La libertad de copiar y distribuir el software.
Freedom 3 : La libertad de crear y distribuir versiones modificadas.

Pero además de hablarnos como surgió esto, más que nada ver los beneficios que esto conlleva, siguiendo las reglas de Stallman. La forma de educar ha evolucionado, muchas escuelas usan computadoras con apoyo del gobierno y por ello es más sencillo utilizar el software libre que comprarlo, obviamente veo esto como una de las mayores ventajas por que lo usan en pro de la educación y no con intenciones maliciosas de obtener dinero o cosas similares.
Por ello este movimiento ha sido de gran beneficio no solo para los desarrolladores del mismo, que ayudan a mejorarlo si no para la educación a nivel mundial. Lo cual rompe las fronteras del mundo cibernético. En conclusión, desde mi punto de vista, es bueno seguir sacando lo bueno de las cosas, es decir, darle un buen uso como en este caso fue en el desarrollo de la educación o el mejoramiento del software. Creo que este movimiento puede evolucionar más y atacar otros sectores, ya que la información es esencial para aprender y mejorar. De igual manera es increíble que este movimiento haya llegado a países tercermundistas, lo que significa un gran acto altruista y significativo para la humanidad.


miércoles, 23 de marzo de 2016

GNU OS & Free Software


 Es un documental interesante donde Richard Stallman nos cuenta la historia del Software Libre. Antes que nada debemos saber que el término Software Libre no se refiere a que sea gratuito, si no a que este puede ser copiado, estudiado y modificado para mejorar el software. Es fácil para algunos inducir que se trata de algo referente al precio pero no, esto es totalmente erróneo; inicialmente en los años 70’s no se usaba este término pero con el tiempo fue tomando forma. El primero de todos, según Stallman fue el Incompatible Timesharing System (ITS), que estaba escrito en lenguaje ensamblador y lo que hacía era compartir software cada que una compañía o universidad lo solicitaba, y esta podía de cierta manera hacer lo que quisiese. 
De igual manera existieron o existen máquinas donde no se les permite hacer esto mediante un contrato, donde de lo contrario lo consideran piratería. Y esto se volvió un problema, donde algunos lo veían mal y otros querían que se respetara su derecho intelectual, pero como en los delitos informáticos, las leyes en el mundo cibernético son completamente diferentes y muchas de ellas no aplicables. Veo esto como un problema moral, ya que para algunos no es cuestión de dinero si no de hacer un mundo cibernético mejor y más eficiente, pero el mundo muchas veces no funciona así. En conclusión conforme al artículo, puedo traducir con mis propias palabras que el software libre es como una comunidad donde puedes compartir tu software, ya sea para ser ejecutado, copiado o modificado para obtener mejoras. Además de ser un artículo informativo e interesante que nos narra de como fueron surgiendo las cosas, nos deja con algo para reflexionar, como programador de que lado estas; también importante que no es lo mismo que Open Source.
Y terminaré este blog con la frase "No hay libertad sin reglas", aunque a algunos nos pese no siempre estaremos de acuerdo y por ello es importante establecer las mismas para evitar conflictos, ya que sigue siendo un tema de debate.




lunes, 7 de marzo de 2016

Reflections on Trusting Trust



Es importante tener en cuenta que como programador existe un cierto código ético y es lo que Ken Thompson nos cuenta como logro ganar el premio Turing con ayuda de otras personas. Para un obtener un gran resultado se necesita de mucho esfuerzo al igual de un buen equipo y es lo que Thompson nos cuenta y da crédito a sus colaboradores para la creación de UNIX.
Como el título nos dice se trata de saber en que confiar, al igual que las personas, existen ciertos tiempos de códigos en los cuales no se puede confiar, uno de ellos es el código que uno no escribe, ya que no se sabe con que se topará e incluso esto puede ser el alojamiento de algún virus como lo son los troyanos. Además de hacer un código eficiente, siento que es importante de igual manera realizar pruebas de seguridad, para evitar estos tipos de incidentes. Con el crecimiento exponencial de la tecnología, también problemas van apareciendo y por ello Thompson quiere hacer conciencia de ello. Más que no confiar, es tomar medidas para asegurar la fiabilidad del mismo.
Un aspecto que me llama es que Thompson, a pesar de ser una época donde la red no era pública hasta 1991, tiene una visión importante acerca de los delitos informáticos. Yo creo que un delito informático tiene la misma relevancia que uno en la vida real, pero hoy en día existen pocas leyes al respecto, después de casi 30 años este aún sigue siendo un tema poco tratado, solo en ciertos países aplican leyes que sancionan este tipo de acciones. Y a pesar de las consecuencias y las pruebas, sigue siendo un tema poco explorado y sancionado. A lo que me lleva a otro libro llamado The Cuckoo's Egg por Cliff Stoll, en donde nos narra como van siguiéndole la pista a un hacker que merodea por ordenadores en búsqueda de información confidencial, pero lo que más deseo enfatizar es el hecho de que en este libro también nos cuenta los obstáculos que las leyes y el FBI ponen para su captura. Es un libro recomendable, que nos adentra un poco acerca de como se debería tratar un delito informático. Para concluir, considero que es importante tener en cuenta que existe código malicioso del cual podamos no percatarnos y por ello no esta de más echar un vistazo.

domingo, 6 de marzo de 2016

Code Rush

Esta vez, en este blog hablaremos del documental Code Rush que nos habla de un navegador que no logro llegar a estos días, pero que ayudo a Firefox, Chrome tuviesen un lugar, ya que la internet aún estaba en construcción. Realmente siempre logro ver que Microsoft era el enemigo más fuerte para todos, lo que conlleva a duras horas de trabajo que como podemos ver el documental son bastantes, prácticamente viven donde trabajan lo que comúnmente otros trabajos no harían. Para algunos resulta algo difícil hacer esto, ya que tienen familias y estas también necesitan tiempo, realmente es un trabajo que demanda la mayoría de tu tiempo, pero si te gusta no debe haber ningún problema, ya que siempre existe código que mejorar.
Otro punto interesante que me llamó la atención, es que es el primer documental donde veo una mujer en un trabajo de equipo, lo que es interesante porque se considera un trabajo de chicos y esta muy bien, ya que en otros documentales como "Triumph of the Nerds" lo describen como dije anteriormente, un trabajo de hombres.
Este documental te hace darte cuenta que los navegadores han sido una bendición para muchos, pero que detrás de ellos existen o existieron grupos de programadores que dieron todo su tiempo para poder hacerlo mejor. Yo creo que lo que hizo que diferenciaran a Mozilla de los demás navegadores es que era un proyecto open source, lo cual aún no era bien visto por algunos pero permitió que el proyecto llegara a nuevos horizontes.
En conclusión, pienso que más que la historia del navegador, mostró la vida de un programador y que a veces se tiene que sacrificar horas de sueño para lograr sacar un proyecto, pero la vida esta hecha de sacrificio, lo cual sin ellos no lograríamos muchas cosas, que hoy en día hacen nuestra vida más sencilla. Yo aún recuerdo cuando tenías que buscar en enciclopedias alguna cosa y era poca la información porque tenías que buscar por muchos lugares y solo la que esta en tu idioma. Y creo que esto seguirá creciendo.

lunes, 22 de febrero de 2016

The Cathedral and the Bazaar

Ahora en esta entrada hablaremos del ensayo de Eric Steven Raymond nos habla de su punto de vista acerca del open source comparando dos términos que son la catedral y el bazar, que son dos maneras de desarrollar software, pero todo comienza por la experiencia que tiene desarrollando un proyecto Fetchmail, para ello comenzaremos primero con sus respectivas definiciones de estas opciones que nos ofrece Raymond. La primera, catedral se refiere al método clásico o tradicional de crear software, lo que lo hace impersonal. Y por otro lado tenemos al método bazar, que parece ser la mejor opción que nos ofrece el autor, ya que es didáctico y como lo es el open source, es abierto y permite mejorar la calidad del software. Para ello, como lo mencionamos antes lo contrasta con 19 lecciones que aprendió desarrollando su proyecto Fechtmail. Lo que hizo fue aprender de sus errores y tomar lo mejor de ello para tener un mejor software.
Realmente al inicio me costo trabajo tomar un decisión con respecto a cual era mejor y bueno estoy de acuerdo en que bazar es la mejor opción, aunque puede existir personas que no. Ya que la contribución de otras personas ayuda a crecer a tu proyecto, tal vez no te harás rico como Bill Gates hizo y reservarse, pero lograrás un buen proyecto que beneficie a todos.
Realmente al iniciar un proyecto no tomamos en cuenta estas variables, pero uno va aprendiendo a la mala, lo importante es como dije tomar lo bueno de todo y seguir adelante.
En conclusión, ya que a lo largo de estos blogs hemos hablado del open source es interesante conocer varios puntos de vista de varios autores expertos en el tema, ya que nos lo sustentan con hecho, lo que hace que podamos tener una mejor elección.

sábado, 13 de febrero de 2016

Revolution OS


[ Comentario ]

Es importante mencionar que para un sistema operativo se necesita de cientos de programadores, existen diferentes como sabemos, pero realmente en difícil para algunos  saber cual elegir si no están familiarizados con el mismo, saber sus diferencias que te conviene en base a tus necesidades, pero lo más común es elegir uno sencillo como dice el video, elegimos programas, ya que el objetivo de un sistema operativo es ayudar a los programas a ejecutarse, no usamos un operativo en sí. Pero en este documental se habla en especial de GNU/Linux y todo el asunto legal e intelectual.
El Open Source para muchos era sacrificar los derechos intelectuales, Gates estaba en contra porque era quitarle valor a los programadores, por lo que Richard pensaba de manera diferente, él quería que cualquier programador pudiera contribuir cuando quisiera, pero había varios obstáculos para esto, por ello se decidió este proyecto GNU, que era una acrónimo recursivo, en cual comenzarían desde cero para evitar con problemas con el sistema operativo Linux que ya existía.
Desde mi punto de vista, creo que esto tiene su parte buena y su parte mala. Por una parte es bueno esto del Open Source, porque permite la contribución de muchos programadores para lograr un mejor sistema operativo que cumpla con las necesidades del usuario, porque como dice un dicho "dos cabezas piensan mejor que una", tener varias contribuciones es bueno. Pero por la parte legal, suele no ser justo para algunos no obtener el crédito suficiente. Yo creo que esto puede funcionar, siempre y cuando no este software no tenga un interés del todo lucrativo o que llegue alguien y que diga que es de él. Se pueden hacer grandes cosas siempre y cuando se respeten los derechos de los demás, porque han existido casos donde se roban las ideas de otros para hacer dinero.
Y creo que siendo programador o no, toda profesión tiene que tener un código de ética donde no se viole el derecho intelectual, aunque este sea Open Source.

domingo, 31 de enero de 2016

Teach Yourself Programming in Ten Years

[Comentario]

Este artículo me pareció interesante ya que habla de como aprendemos un lenguaje de programación ya sea C, SQL o Ruby. A veces el título de un libro, es lo que atrae al lector. Analiza el título Teach Yourself C++ in 24 Hours y concuerdo en los siguientes puntos con el autor, si tomamos en serio el título de aprender en 24 horas creo que es obvio, que solo aprenderemos lo superficial, como crear un main, declarar un función y los operadores básicos. El autoaprendizaje no es malo pero tampoco bueno del todo; lo bueno, es que así puedes aprender de todo un poco, es decir te hace que desarrolles esa habilidad para resolver los programas por tu cuenta y la parte mala es que no tienes a alguien que te resuelva dudas, aunque existan foros de programadores, realmente no es lo mismo porque quien te asegura que la información proporcionada es la correcta. Al igual, platicar con una persona que ya tiene experiencia con dicho lenguaje, hace la diferencia porque te comparte sus experiencias, lo que te hace amar más aprender este lenguaje y las cosas que puedes hacer. La frase de Alan Perlis, la traduzco como "Si un lenguaje no te reta mentalmente, no vale la pena", porque entre más te haga pensar puedes hacer cosas increíbles.
Ahora, analicemos el título que lleva este artículo Teach Yourself Programming in Ten Years , que suena más creíble, según expertos dicen que una persona tarda 10 años en tomar experiencia en cualquier área, pero no hay que olvidar que para esto la clave es la práctica en el sentido de irte poniendo retos que aumenten de nivel y no solo practicar lo mismo todo el tiempo. Dice que este es un número mágico para aprender algo, pero yo creo que no, depende de la persona y el esfuerzo que este le de para aprender algo.
Concuerdo en el hecho de que si quieres ser programador, tienes que tener interés y amar lo que haces, junto con la práctica es lo que te hace aprender bien.
En conclusión, me pareció interesante este artículo ya que es cierto que si quieres aprender algo, lo haces con las mejores ganas del mundo y que no solo de un libro se aprende si no también la retroalimentación de compañeros y profesores es importante, siempre aprovechar las oportunidades que se te presenten, como dice también de tu trabajo puedes aprender y es un largo camino que te ayuda a adquirir experiencia. Y también es importante no solo casarse con un lenguaje de programación. También siento que es importante desde pequeños fomentar este tipo  de curiosidad por aprender nuevas cosas, tal vez no de programación, pero si nunca dejar de aprender, porque todos empezamos siendo malos y eso es lo que nos hace aprender de nuestros errores para así ser mejores.
Particularmente me encantó como termina el artículo, porque termina con una frase de mis películas favoritas que es Ratatouille, que es por eso que me gusta, en la que Gusteau le dice a Remi que "Cualquiera puede cocinar, pero solo el valiente es el que va a ganar", pero aquí no sea trata de ganar si no de aprender y ser la mejor versión de uno mismo, si uno no se arriesga por miedo de tropezar en el camino nunca llegará a nada, porque ...
"No cualquiera puede convertirse en un gran artista, pero un gran artista sí puede provenir de cualquier lugar."

O en este caso convertirse en un buen programador.




domingo, 24 de enero de 2016

The World is Still Powered by C Programming

[ Comentario ]
Este artículo escrito por Daniel Muñoz nos respalda mediante hechos porque el mundo sigue siendo impulsado por el lenguaje C. Y me puse a pensar que, si pudiéramos hacer una línea cronológica de todos los lenguajes de programación que existen con sus ventajas, sería enorme. 


En un artículo previamente leído que lleva por título "The Semicolon Wars" por Brian Hayes, relacionado con este tema, habla de que seguimos creando nuevos lenguajes porque buscamos el universal, el lenguaje perfecto. Pero como dice Daniel Muñoz en su artículo, que haya más lenguajes no implica que sea mejor en todas las áreas. Al parecer nadie le quita el trono al lenguaje C.
Es realmente increíble saber cuantas cosas se pueden hacer con este lenguaje, algunos ejemplos que conocemos y usamos día a día son : varios sistemas operativos, smartphones, algunas bases de datos, películas, animaciones 3D y sistemas embedidos. A pesar de que en los ejemplos anteriores, en su totalidad no se encuentran escritos C, sigue predominando en el mundo. Pero, ¿qué lo hace tan especial?

Existen muchos lenguajes de programación que permiten a los desarrolladores ser más productivos, pero se cree que el lenguaje C permanecerá activo por mucho tiempo. Además de ser un lenguaje portable, eficiente, que hace uso eficiente de sus recursos y su tiempo de ejecución es pequeño por el tamaño del mismo, la parte que más me llamó la atención es que se considera como una Lingua Franca, que lo hace portable, es decir que es capaz de reutilizarse sin que dependa de la plataforma, lo hace que sea un lenguaje, con el cual se pueda expresar y ser entendido por la mayoría de los desarrolladores.
Una pequeña analogía para entender esto mejor, es que el idioma Inglés es una Lingua Franca, para algunos hablantes; como el lenguaje C es la Lingua Franca para los programadores.
En conclusión, luego de leer este artículo, me es difícil negar que tiene razón el autor, el lenguaje C gobierna nuestra vida diaria y es imposible dejar pasar la oportunidad de aprender este lenguaje. Ya que como dice, entendiendo este lenguaje, aprender otros lenguajes no resulta tan difícil. Por otra parte, creo que es importante conocer bien el lenguaje para lograr explotar todo su potencial.



Referencias
Muñoz Trejo, Daniel Angel. (2015). After All These Years, the World is Still Powered by C Programming. Recuperado el 23 de enero de 2016 de  http://www.toptal.com/c/after-all-these-years-the-world-is-still-powered-by-c-programming
Hayes, Brian. (2006). The Semicolon Wars. Recuperado el 23 de enero de 2016 de http://webcem01.cem.itesm.mx:8005/s201611/tc2006/semicolon_wars.pdf