Cuando tu computadora.. no es tuya

abril 22, 2010


Lo feo de haberse recibido de Ing. en Informática es que cuando vas a visitar a un familiar, o a comer de un amigo.. en algún momento surge una pregunta como: «che, que le puede estar pasando a mi computadora ?«.. o, «vos sabes que estoy teniendo un problemita con la compu«.. pero si yo vine a visitarlos!!!.

Pero bueno, generalmente uno termina accediendo, y es así como suceden las cosas, para sorpresa de uno. Hace unos días viaje a Rosario, y de visita en lo de un amigo me dice: «che, vos sabes que me compre una notebook, que viene con Windows 7, y no me deja cambiar el fondo del escritorio..«.. no, no puede ser le dije yo, fijate bien (tratando de esquivar el trabajo extra). Luego de un rato me insiste con la pregunta, y me siento en búsqueda de la dichosa opción, que no aparecía por ningún lado. Acto seguido una rápida búsqueda en el amigo Google y efectivamente.. no se puede cambiar el fondo!!!.

Como dice el slogan de un gigante fabricante de computadoras: «Ahora sí tu computadora es personal«.. mentira!!.. si ni siquiera podés ponerle el fondo de Homero Simpson rascándose la panza!, ni hablar de compartir un archivo en la red de tu casa, etc. (hay que registrarse y comprar la licencia de Windows 7 Ultimate, hoy a u$s 280).

Ahora bien, me surgen de manera inmediata un par de preguntas:

  • si es tu computadora, no deberías poder hacer lo que quieras en ella ?
  • la gran mayoría de las computadoras vienen con alguna versión (pre-instalada) del sistema operativo de Microsoft, está bien que esto sea así ?; porqué esto es así ?; pueden hacerse abiertamente este tipo de convenios que rozan prácticas monopólicas ?

A propósito, el fondo que traía la portátil era uno de la novela «Casi Angeles«.. hermoso fondo para un médico recien recibido jajaja!.

Qué es un Sistema Operativo

abril 22, 2010

Imaginense por un momento.. una computadora. Una computadora tiene un procesador, un disco rígido, memoria, una placa de video (encargada de enviar señales al monitor), una placa de sonido, una de red, teclado, etc. Piensen ahora en las cosas que hacemos habitualmente en una computadora, navegamos por internet, escribimos documentos, escuchamos musica y miramos películas.. todo lo que se nos ocurra. Ahora bien, cuando navegamos por internet, por ejemplo, no estamos preocupados en como enviar los datos a través de la placa de red; o cuando escribimos documentos en como se guardan en los sectores del disco; o si miramos una película mientras descargamos un archivo de internet que aplicación tiene más prioridad.. estas cosas suceden, y alguien tiene que hacerse cargo de ellas, de «gestionar todos los recursos«, y el encargado de esto es el sistema operativo.

Básicamente, un sistema operativo es un software que sirve de base para darle utilidad a un determinado hardware, y que posibilita la instalación de aplicaciones de usuario que amplían las capacidades de éste; dicho de otro modo, un hardware sin un sistema operativo carece de utilidad alguna.

Dicho esto, pensemos en todos los «aparatos» que conocemos, o que tenemos en casa, que son capaces de realizar «algo».. un televisor, al que puedo pedirle que se apague a una determinada hora; un aire acondicionado split, que puedo decirle que me controle la temperatura; y adivinen que.. el aparato que tiene la capacidad de volver estúpidas a las personas.. siii.. el celular!!.
El celular también tiene un sistema operativo, inicialmente muy básico, solo permitía llamadas, después ya tuvieron una calculadora y una agenda, la posibilidad de enviar mensajes de texto.. ahora ya se puede escuchar música, sacar fotos, conectarse a internet, función de gps, pantalla táctil.. y hasta un mini proyector para usarlo en presentaciones o charlas (crease o no).

Volviendo a los sistemas operativos de computadoras, podemos decir que los más difundidos son:

  • Microsoft Windows (propietario), el más usado, el de la banderita
  • Mac OS de Apple (propietario), usado mayormente para diseño gráfico, el de la manzanita
  • GNU/Linux (software libre), ampliamente usado en servidores, y ahora para usuarios finales, el del pingüinito

Para no hacer este post más largo, quiero ir cerrando con una reflexión, como es costumbre. Navegamos por la web todo el tiempo, enviamos y recibimos mails, chateamos, compartimos fotos, hablamos por teléfono y el sms inunda la red.. estamos cada vez más comunicados, y el software maneja nuestras comunicaciones.. está bueno que sea privativo ?.

Introducción al Software Libre

marzo 19, 2010

La mayoría de los software y servicios que hoy usamos, en nuestras pc’s o en internet, poseen una licencia, que usualmente no leemos y pasamos por alto con un simple «Acepto». Estas licencias son un contrato formal entre el desarrollador del software (o servicio) y nosotros los usuarios.

Algunas licencias son muy restrictivas y si no leemos lo que estamos aceptando (un contrato) podemos caer en un problema. Existe una licencia denominada GNU GPL (GNU General Public License), tanto para software de escritorio como para servicios de internet, que respeta la libertad del usuario. Para que un determinado software (o servicio) sea GPL debe cumplir:

  • 0, la libertad de usar el programa, con cualquier propósito,
  • 1, la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades,
  • 2, la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo,
  • 3, la libertad de mejorar el programa y hacer públicas esas mejoras de modo que toda la comunidad se beneficie.

Para que las libertades 1 y 3 se cumplan se debe tener acceso al código fuente del programa. Si un programa no cumple con alguna de estas libertades se dice que es privativo (porque priva al usuario de las mismas).

La libertad 0 parece obvia, pero existen algunos software en que esto no se dá. Un ejemplo es el software para diseño de páginas web FrontPage, desarrollado por Microsoft, que prohibe al usuario diseñar un sitio web con contenidos que agravien a dicha empresa. Las otras libertades son bastante claras.

Cualquier persona puede utilizar un software, copiarlo, modificarlo, y redistribuirlo, siempre y cuando el software modificado
mantenga la misma licencia, es decir sea GPL.

Algunos servicios en internet están tomando este mismo rumbo, y está siendo cada vez más aceptado lo que se conoce como ambientes colaborativos del conocimiento. Un ejemplo de esto es la Wikipedia (que esta bajo Licencia de Documentación Libre de GNU o GFDL), en donde cualquier persona puede modificar y mejorar una publicación, y de esta manera estar ayudando a toda la comunidad (todo el mundo se beneficia con los cambios).

Otro aspecto a tener en cuenta es la dependencia tecnológica. En muchos organismos estatales de todo el mundo ya se está migrando a SL por el riesgo que implica depender tecnologicamente de una sola empresa.

Las Universidades son otro ejemplo. Por un lado no pueden exigirle a sus alumnos que adquieran licencias que superan los u$s 400 (solo el sistema operativo), y por otro, si el alumno no tiene solvencia económica para adquirir dicha licencia, hay que evaluar que se está enseñando cuando se copia ilegalmente un software. La alternativa a esto es Software Libre.

No todo es color de rosa
Todavía no existe todo el software necesario. Algunos programas de gestión, o los desarrollados a medida, deberán ser portados a esta plataforma. No obstante esto está cambiando muy rapidamente.

Qué es el código fuente, y porqué es importante

marzo 19, 2010

A menudo es difícil explicar en qué consiste o qué es el código fuente, de modo que voy a utilizar un recurso interesantisimo, un ejemplo. Existe desde hace muchos años uno lenguaje de programación muy didáctico y fácil de aprender denominado Logo, que consiste básicamente en darle órdenes a una tortuguita que va dibujando su recorrido sobre la pantalla. Kturtle es uno de los tantos programas que nos permiten convertirnos en una especie de arquitecto con caparazón.

La imagen siguiente muestra una captura de pantalla del programa, donde se observan dos ventanitas; una a la izquierda con las órdenes dadas a la tortuga, y otra a la derecha con el dibujo que la misma va haciendo.

Es fácil ver que la tortuguita hizo lo que se le ordenó a la izquierda, es decir, avanzó (forward) 100 unidades, giró (turnleft) 90 grados a la izquierda, volvió a avanzar ahora 150 unidades, volvió a girar, y así hasta quedar mirando hacia la derecha.

Podemos decir entonces que el código fuente son las instrucciones que, escritas en un determinado lenguaje y respetando una determinada sintaxis, producen el resultado buscado, ya sea esto un dibujo en pantalla o más generalmente un programa de computadoras (software).

Ahora bien, cualquier persona podría (con solo mirar las instrucciones dadas) crear otros dibujos sencillos, como un triángulo o una casa (combinando entidades geométricas elementales). Pero solo podemos hacer cosas simples ?, NO!.. el límite es nuestra imaginación, y aprovechando que nuestra querida mascota no se cansa hagamosla hacer algo más interesante.

Aha!.. les gustó eh!.. pero, como lo hizo ?.

Y es aquí donde tengo que contarles sobre la importancia de tener el código fuente. De modo más general podemos hablar de un programa de computadora, un software. Podremos tener el código fuente de un programa y nunca mirarlo, pero si no lo tenemos dificilmente podamos hacerlo. Siempre es mejor tenerlo.

Si escribimos poesía, lo haremos mejor si leemos mucha poesía y escribimos mucha poesía; para mejorar nuestro tenis debemos mirar mucho tenis, y practicar mucho tenis. Todo proceso de aprendizaje implica ambas cosas.

Podemos tener solo la aplicación final, y puede funcionar correctamente, es cierto, pero nunca podremos aprender, nunca podremos mejorarla (o que alguien lo haga).

Existe una cuestión más, y está relacionada con la seguridad y la privacidad. Si solo tenemos la aplicación final ésta se comporta como una caja negra, y no hay forma de asegurar que la aplicación no cuente con funcionalidades mal intensionadas, como por ejemplo lo que se denominan backdoors o puertas traseras, que envían información de lo que hacemos en nuestras computadoras a un determinado lugar sin que nos demos cuenta.