domingo, 27 de mayo de 2007

Software gratuito

He aquí una colección de software que seguro os resultará muy útil, y además gratis.

-Scribus: Sin duda alguna, el mejor programa de maquetación que existe. Te permitirá componer cualquier tipo de obra para imprenta (libros, revistas, folletos, trípticos, dípticos, etc.), con las características avanzadas de este tipo de programas (como PageMaker o QuarkXPress), que son muy superiores a las de cualquier procesador de textos. Para Windows, Linux y MacOS X.


- The Gimp: Uno de los mejores programas de edición y retoque de imágenes, del nivel del mítico Photoshop, sólo que éste es gratuito. Es, sin lugar a dudas, mi favorito. Tiene absolutamente de todo para que puedas realizar retoques profesionales. Y si no encuentras algo, podrás encontrar plug-ins. ¿Qué más quieres? Ah, sí! Funciona en Windows, Linux y MacOS X.


- Rainlendar: Extraordinario calendario de escritorio que te permite tener a mano y de un vistazo todos tus eventos, citas, recordatorios, reuniones, alarmas, tareas por hacer, etc. Puedes compartir calendarios, mostrar varios calendarios a la vez (personal, trabajo, ocio, vacaciones, etc.), programar tareas recurrentes o personalizar el calendario. Muy sencillo de usar. Para ponerlo en castellano tendrás que acceder a las opciones y descargarte el idioma. Para Windows y Linux.


-doPDF: Convierte tus documentos a formato PDF rápidamente. Se instala como una impresora, por lo que desde cualquiera de tus programas de documentos podrás imprimirlos directamente a un archivo PDF. Para Windows.


- VMWare: Virtualiza máquinas Linux y Windows con esta espléndida utilidad. Es como si tuvieras varios ordenadores en el mismo. Necesita registro gratuito.

- GNU Parted: Potente utilidad para gestionar particiones de disco duro. Para Linux.

- Videolan´: Excelente reproductor de vídeo, que soporta DVD, VCD, SVCD, AVI, MPEG, OGM y DivX. Para Windows, Linux, MacOS X t BeOS.


- Ardour: Excelente secuenciador de audio, del estilo de Cubase o Digital Performer, con el que podrás tener un estudio en tu propia casa. Mezcla, sintetiza, edita, graba, juega con los canales... haz lo que quieras. Además dispones de plug-ins. Para Linux y MacOS X.


- Aimp: Desde Rusia nos llega un extraordinario y espectacuoar reproductor de música, que incluye multitud de opciones interesantes, como agregar efectos a la reproducción en curso (eco, reverberación, coros, modificar la velocidad o el balance...). Es muy funcional, usable, con una interfaz completita y organizada. Te lo recomiendo. Para Windows.
Enlace directo a la descarga


- SMPlayer Estupenda interfaz de usuario para MPlayer, uno de los mejores reproductores multimedia para Linux.


- SquirrelMail: Increíble cliente de correo electrónico, basado en PHP y webmail, lo que garantiza su funcionamiento en cualquier plataforma que tenga acceso a Internet. Puede acceder a listas de correo LDAP, hacer búsquedas en mensajes, gestionar carpetas, plugins, vistas, temas, filtros, anti-spamming, corrección de correos, traducción de correos, etc.


- Rakion: Espectacular juego online de acción y estrategia medieval. En él irás progresando y subiendo de nivel, ganando habilidades, armadura y armas. Puedes elegir entre cinco tipos de guerrero (espadachín, arquero, mago, ninja o herrero) y la diversión está asegurada: efectos especiales, estrategias, mucho bicho malo y un sin fin de detalles y alicientes. Te lo recomiendo. Para Windows.


- Soldier Front: Estupendo juego bélico, con buenos gráficos y gran realismo, del estilo de Counter Strike, Battle Field o War Rock. Podrás comprar armas, mejorar el equipo, y hacer guerras con y contra amigos de todo el mundo, vía internet. Para Windows.


- Dofus: Extraordinaria versión para ordenador del juego de rol Dofus. Todo un mundo de fantasía, acción, historia, personajes, criaturas, mundos, magia, armas, pócimas, ... Los gráficos están muy currados, del estilo de cómics, y la originalidad rebosa en todos los detalles del juego. Está basado en Flash, por lo que se puede jugar en Windows y Linux.


- MiniRacing online: Estupendo simulador de coches multijugador (hasta 16 jugadores) online, español, de vista aérea, con una calidad gráfica muy buena y que incluye multitud de circuitos reales. Hay incluso campeonatos, y el realismo llega al extremo de jugar en condiciones climatológicas. Necesita poca máquina (CPU a 350Mhz, 64MB RAM, tarjeta de vídeo 16 MB, conexión a internet, DirectX 8). Para Windows.


- José Chess: Estupendo programa de ajedrez, con el que podrás editar las jugadas, soliticitar sugerencias de jugadas, crear páginas HTML y PDF, insertar comentarios, realizar variaciones, análisis, usar una vista 2D o 3D, y, por supuesto, jugar. Para Windows, Linux y MacOS X.

lunes, 21 de mayo de 2007

Nuevo libro: "Sé feliz, aquí y ahora"

Acabo de liberar mi último libro: Sé feliz, aquí y ahora.

En este libro he recopilado todos los contenidos de mis anteriores libros (El Rincón de la Felicidad 1, 2 y 3, y Neraclem), y he añadido multitud de material adicional totalmente inédito, y que no ha sido publicado en este blog.

El libro está compuesto de tres partes: Relatos y Reflexiones (en total 332, de los cuales 118 nuevos, de éstos, 75 son inéditos), Frases y Citas (en total 930, de las cuales 387 son nuevas, de éstas, 301 son inéditas) y el relato Neraclem.

La obra está amparada bajo la licencia CopyLeft, por lo que podrás copiarla e incluso utilizar su contenido (siempre bajo los acuerdos de la licencia CopyLeft).

Podrás descargarte el libro en el siguiente enlace:

http://rafinguer.spaces.live.com/blog/cns!1775475B9CE58415!1625.entry

Os dejo este tesoro que seguro os será muy útil en la vida.

Sé, feliz, aquí y ahora.



Rafael Hernampérez

domingo, 13 de mayo de 2007

Película de dibujos animados 3D hecho con software libre

Ya está disponible el trailer de "Plumíferos", un largometraje de dibujos animados 3D realizado con software libre. Varios artistas argentinos han colaborado en este proyecto, que tiene muy buena pinta.

Aero (Windows Vista) Vs. Beryl (Linux)

Las comparaciones son odiosas, pero una imagen vale más que mil palabras.

sábado, 12 de mayo de 2007

Calidad de los proyectos informáticos

El debate de esta semana promete ser interesante, pues aborda uno de los puntos más críticos y delicados de la tecnología: la calidad del software.

Oigo a mis espaldas muchas insastisfacciones, tanto por parte de clientes, como parte de profesionales del mundillo, en la que la calidad deja mucho que desear. En la calidad de un software intervienen muchos factores, todos con una involucración más o menos directa, y que afectan, indudablemente a la calidad final de los productos que se desarrollan.

Podríamos comenzar por la educación, ya que en nuestras universidades y centros de formación se centran únicamente en la docencia, y en enseñar cómo programar en diversos lenguajes de programación, y alguna que otra disciplina relacionada. Pero nunca tratan la calidad del software, a no ser que algún profesor lo mencione de corrido en alguna clase, como algo anecdótico y en lo que se detiene a hacer menciones más detalladas.

Creo que todos los que hemos estudiado programación hemos hecho nuestras propias investigaciones con proyectos de iniciativa propia, y en los que hemos aportado toda nuestra voluntad y deseos. Pero eso no es suficiente. Si bien la programación es la base del negocio, ya que es la mano de obra, lo más importante es una parte organizadora y que coordine como un reloj suizo de alta precisión a todos los equipos. ¿De qué sirve un gran equipo de remeros si el timonel está borracho o ausente, el vigía en mitad de una siesta, el grumete jugando a las cartas y el capitán despachando a un par de profesionales del placer?.

Nos preparan para tirar código, pero no nos preparan para conocer todas las funciones del barco, cómo funcionan, las relaciones entre todas las partes y cuáles son las mejores prácticas para los distintos casos que se pudieran presentar.

Hay otro punto importante en el cual hay muchas asperezas: el intrusismo.

Es muy habitual encontrar en equipos a ingenieros salidos de la facultad, y a chavales que, mientras repartían pizzas o ponían ladrillos en una obra, han estudiado un curso en una academia sobre Java. Oto punto de fricción está en los diplomados y licenciados que nada tienen que ver con la informática o las telecomunicaciones: abogados, economistas, físicos, químicos, biólogos, geólogos, matemáticos, etc.

Hay una gran polémica en este sentido, pues un ingeniero informático se queja de que cobra lo mismo o menos que un chaval con un certificado de estudios académico que le ha supuesto, en el peor de los casos, un año de estudios. Y otro punto de fricción es el hecho de un ingeniero informático ha hecho una carrera completa dedicada exclusivamente a la informática, y se le ningunea con otros compañeros que sólo conocen el lenguaje de programación, y no las teorías y detalles que hay detrás de la carrera.

Yo he conocido compañeros que no eran informáticos de carrera (tanto académicos como universitarios), que eran muy buenos programando, así como compañeros que eran informáticos de carrera que no valían mucho como profesionales del sector. Ante todo, la actitud de la persona individual como profesional es la que impera, y las ganas de realizar el trabajo y aprender cosas nuevas.

Lo que es innegable es la cantidad de ocasiones de las que he sido testigo, en las cuales un "no informático" (intruso es una palabra que no me gusta) se quedaba bloqueado ante una situación en la que era necesario explotar ciertas dotes especiales, como la algorritmia. Y lo que también es innegable es que un "no informático" cuenta con las mismas posibilidades de carrera y de evolución, además de sueldo.

Otro factor que ha existido (y que sigue existiendo), es la contratación de universitarios "no informáticos" para puestos de más alta calificación que un informático, como consultores de negocio y como analistas funcionales, pensando en que sus mentes no tienen vicios informáticos y que les permiten dilucidar mejor los requisitos de cualquier tipo de negocio. Es una mentalidad un tanto errónea, pues un "no informático" piensa cómo y en lo que le han enseñado en la carrera (física, química, economía, geología, etc.), al igual que cualquier otro universitario.

Además, en la facultad de informática ya te preparan para las labores de análisis, tanto funcional como técnico, asociado a la informática. Esto no se enseña en ninguna otra carrera, y aún menos en una academia. Por tanto un ingeniero informático está preparado para labores de análisis.


Muchos compañeros míos me han comentado que nos falta un Colegio de Informáticos oficial, y que de esa manera se acabaría el intrusismo. ¿Y sólo para éso? ¿Para acabar con el intrusismo?. A mí me parece que el problema no es el intrusismo, si no las ideas preconcebidas a la hora de asignar los mejores profesionales en cada labor. Yo estoy a favor de un Colegio Oficial de Informáticos, pero no para acabar con el intrusismo, si no para contemplar y velar por la calidad y el buen desempeño de los profesionales adscritos a él, así como extraer el conocimiento para que el sector crezca en calidad y en profesionalidad, y, sobre todo, en la confianza del cliente, en la que un cliente pueda confiar en un informático con el mayor de los respetos, al igual que un paciente en un médico o un acusado en un abogado.

Otro punto importante es que un informático no conoce un determinado negocio, y lo debe ir aprendiendo durante su carrera profesional. Puedes ser el mejor experto en Java y frameworks, pero si te metes en un proyecto para seguros o banca, y de esto no tienes ni idea, mal vamos.

Algunos me recriminareis: un programador no debe preocuparse por eso, ya que son los analistas los que extraen los requisitos e identifican las funcionalidades del negocio. Bueno, no olvidemos que un analista ha sido primero un programador, y que al evolucionar en su carrera asciende a este grado. Pero un informático (ni nadie) no está preparado con antelación para conocer un determinado negocio, si no que lo debe aprender con la experiencia. A lo largo de su período como técnico desarrollador comienza a aprender ciertos patrones de negocio que pueden reproducirse en otros negocios, así como identificar de manera instintiva nuevos patrones de negocio y entenderlos.

Cuando alguien se tira sus primeros meses o años de profesión en (por ejemplo) las telecomunicaciones, si accede a un proyecto de seguros, no es de extrañar que se pierda. El negocio de los seguros es muy distinto al de la telefonía o al de las redes de internet. Esta falta de conocimiento impacta en el desarrollo del software: requisitos mal entendidos, falta de previsión en detalles de negocio por desconocimiento de ciertos procesos, funcionalidades no detectadas, etc. Al final, esto se traduce en retrasos y sobrecostes.

Lo que quiero decir con estos últimos párrafos es que las empresas consultoras no tienen en cuenta el tipo de negocio. Piensan "un informático hace churros con plastelina, masa de harina o con una piedra". Y este planteamiento es equivocado. Suelen asignar profesionales a negocios en los cuales no se han formado y que desconocen. Y esto es una barrera importante a la hora de realizar un proyecto con calidad.

Otro factor muy determinante es la organización de las empresas de informática, especialmente las consultoras. Y lo digo por multitud de casos, entre los que resaltaré sólo unos pocos.

Sigue existiendo el perfil de un comercial que sólo piensa en comisiones, y que hipoteca un proyecto de forma equivocada a costa del trabajo, de la dignidad y de la profesionalidad de los informáticos. Ya sé que me he metido con los comerciales, pero no con los comerciales en general. Conozco algunos comerciales que sí saben hacer su trabajo con arreglo a la realidad.

Sigo viendo algunos comerciales que venden proyectos imposibles. Se pasan a pedir información sobre la previsión de un proyecto, y luego recortan los tiempos y el presupuesto. No hacen caso a las estimaciones ya de por sí ajustadas de los profesionales que van a sudar trabajando en el proyecto, que se van a quedar noches y fines de semana trabajando para alcanzar un objetivo imposible a costa de la comisión del dicho comercial. Son comerciales que cuando les dices que necesitas un mínimo de tres meses con un equipo de diez personas, se cabrean contigo porque no pueden vender el proyecto de esa manera, y para hacerlo, preparan una oferta con un tiempo de mes y medio y seis personas. No saben hacer un "NO GO" al proyecto, ni presentar la oferta acorde a las estimaciones de los profesionales que SÍ saben cuánto cuesta hacer el proyecto, aunque no sepan vender.

En proyectos así, que están tan deficientes en tiempo, en los que la productividad se mide por número de líneas, clases, funciones, pantallas, etc., hechas en un tiempo mínimo, es cuando destaca la falta de calidad. El cronómetro es el peor enemigo de la calidad del software, porque la productividad no es realmente efectiva. Puedes hacer cuatro o cinco pantallas al día, pero si tienen que volver a tí diez veces para que corrijas errores, al final vas a dedicar más tiempo y esfuerzos que si la hubieras hecho con una calidad mínima. Al final se traduce en más tiempo y en más coste para el proyecto.

No hay una visión de calidad en los proyectos precisamente porque no se da el tiempo necesario, ni se aporta un equipo experto, dedicados exclusivamente a la calidad del software. Cuando se planifica un proyecto, normalmente no aparecen fases suplementarias de calidad en el project, ni siquiera unos recursos asignados especialmente dedicados a estas tareas. Tampoco se prevee unos procesos de calidad en el proyecto, tales como definir unos casos de prueba en los requisitos, y que el usuario o cliente esté de acuerdo con dichos casos de prueba del sistema y acepte los requisitos con dichos casos de prueba, los cuales no hacen si no aportar un punto de control para verificar que el producto cumple con correctamente con el requisito, y que éste ha sido correctamente entendido.

Pero la calidad en el software no es suficiente, amigos. La verdad es que mejora la calidad del producto, pero no nuestros vicios de trabajo. Podemos conseguir un producto bueno y se recortan sustancialmente los costes (debidos a correcciones, garantía, etc.). Pero hay que mimar también la calidad en los procesos de desarrollo.

Este tipo de calidad la aportan las metodologías, tales como Métrica, ISO, CMMI, PRINCE o ITIL (por mencionar sólo algunas). Dichas metodologías contienen un compendio de buenas prácticas en cada uno de los procesos de desarrollo de nuestro negocio: en la oferta, en la planificación, en el análisis, en la construcción del sistema, en las pruebas, en el mantenimiento, etc. Obviamente, cada proyecto es distinto, pero conocer bien la metodología nos permitirá adecuar la metodología al mismo.

Muchas empresas anuncian a bombo y platillo que implementan una metodología, y en las ofertas es un punto de decisión de compra importante. Pero la mayor parte de las veces no se aplican, principalmente debido al tiempo irrisorio con el que se cuenta para desarrollar el proyecto, porque no se dedican los recursos ni los medios necesarios para el desempeño y cumplimiento de la metodología, y porque las empresas normalmente no se preocupan de tener personal formado o dedicado a ello, o si lo tienen, lo tienen atendiendo otras tareas de distinta finalidad.

¿A alguien le suena cosas como: no hay documento de requisitos, se acaba el proyecto y no hay un análisis, no hay un plan de pruebas, no hay documentación, se empieza a desarrollar antes de tener un documento de requisitos aceptado por el cliente, no hay actas de las reuniones, los comités de seguimiento se realizan tarde y cuando hay crisis, no hay una matriz de riesgos, no hay control de la configuración, se acomete un proyecto en una tecnología y no tenemos a nadie que sepa de ésto, y así, una infinidad de barbaridades más que no se tienen en cuenta? ¿A alguien le suena los típicos proyectos de un mes, y luego el cliente pide y pide sin fin requisitos y terminamos en seis meses, y encima casi a tortazos? Una metodología evitaría éstos y otros muchos problemas.

Para que ese barco navegue seguro por los siete mares es imprescindible varias cosas:
- En la carrera de informática deberían enseñar una materia dedicada a metodologías.
- Crear un Colegio Oficial de Informáticos, en las que haya varias categorías:
- Ingenieros Informáticos.
- Ingenieros, diplomados y licenciados no informáticos.
- No ingenieros (no diplomados, no licenciados). Nivel académico.
- Dar oportunidades ajustadas y acordes a las categorías anteriormente citadas. Recordemos que un ingeniero informático ha estudiado una especialidad, con más conocimientos en este campo que el resto de categorías, y que debería tener más derechos, oportunidades y responsabilidades que el resto de adscritos.
- En las ofertas comerciales respetar escrupulosamente, como se hacen en otras especialidades (como arquitectura, ingeniería de caminos, ingeniería industrial, etc.), la valoración realizada por un ingeniero informático. Quien conoce perfectamente las capacidades, experiencias y riesgos en la ejecución de un proyecto es un informático, no un comercial.
- Cada empresa informática debería contar con profesionales en calidad y aportar su experiencia en todos los proyectos que se ejecuten.
- Aplicar escrupulosamente las metodologías, y tener un seguimiento y control exhaustivo con los clientes de la aplicación de estas metodologías.
- Realizar periódicamente auditorías externas de calidad y de metodología, a ser posible oficiales, como si fueran inspecciones. De esta manera se aseguraría la calidad de la empresa y de sus profesionales.

Estas ideas son personales, aunque me encantaría conocer tus ideas, tus opiniones, tus críticas o tus puntos de vista. Por favor, déjame un comentario, teniendo en cuenta que será moderado, y por tanto, cualquier insulto, descalificación o mención concreta a una empresa o persona, será omitido.

domingo, 6 de mayo de 2007

Sé legal y ahorra dinero en software

Cuando uno comienza a echar cálculos sobre el dinero que debería invertir en software se echaría las manos a la cabeza. Dependiendo del sector de consumo de dicho software, los precios de las licencias pueden dispararse a cotas insospechadas. ¿Cómo ser legal y utilizar software de forma no pirata, pero que no suponga un coste importante?. La solución, indudablemente, sería el software libre.

El software libre, aunque se pueda utilizar de forma gratuita (en la mayor parte de las ocasiones), no significa que sea gratis. Software libre significa que puedes hacer con él lo que quieras, principalmente en obtener el código fuente, modificarlo para adaptarlo a tus necesidades y compartirlo con todo el mundo. Es por ello que ingentes cantidades comunidades de programadores en todo el mundo, aportan, de forma altruista, su ingenio, su tiempo y su trabajo en la construcción de software libre.

Puedes descargarte e instalarte gratuitamente el software, e incluso utilizarlo en entornos de producción. Pero si tienes algún problema técnico deberías pagar algún tipo de soporte. Y es ahí donde está la cara del negocio del software libre.

En el software propietario no sólo pagas el producto y te hipotecas con una licencia absolutamente restrictiva que te impone obligaciones y te concede muy pocos derechos. También pagas por un soporte (y bien que lo pagas), que raras veces (si eres un usuario medio avanzado) llegarás a utilizar.

Por ello, utilizar software libre te permitirá ahorrar mucho dinero, ya que no pagas el producto ni te hipotecas con licencias. Si quieres (y esta es otra de las libertades de las que disfrutarás), podrás contratar sin compromiso un soporte para el software. Normalmente, este tipo de soporte se realizará con software muy especializado y del que seas poco experto. En software más corriente será más raro
contratar un soporte.

Otro de los alicientes del software libre es que muchos productos son tan populares que disponen de multitud de recursos: FAQ's, foros, documentación, manuales, libros, etc. Asimismo, la eficacia de muchos de estos productos está tan demostrada que es una garantía de éxito en su implantación dentro de una empresa, donde no faltarán profesionales que puedan mantener su puesta en producción.

Estos productos no tienen por qué estar centrados en el mundo Linux, si no que debido también a la penetración de Windows, existen muchísimos productos que abrazan el software libre para este sistema operativo propietario.

El artículo estará compuesto de dos partes. La primera de ellas estará dedicada a sistemas operativos libres, centrándose más en distribuciones Linux. La segunda parte se referirá a aplicaciones que tienen su acogida en Windows y en Linux, y se clasificarán según su cometido.

Espero que disfrutes de este artículo y que te sea muy útil. Me gustaría que compartieras también software que haya podido omitir en esta lista y que creas que pueda ser interesante mencionar. Para ello deja un comentario en este post.


SISTEMAS OPERATIVOS

El sistema operativo es el software base principal de todo ordenador, ya que a través de él el usuario interactúa con el ordenador a través de una interfaz, ya sea de texto o gráfica, y puede acceder a las operaciones básicas (acceso y gestión de archivos, uso de periféricos, acceso y gestión a información, etc.), así como a una serie de utilidades a bajo y medio nivel.

Cuando hablamos de sistemas operativos libres, el primero que nos viene a la mente es Linux, por ser el más popular y de mayor aceptación. En él nos centraremos, aunque al final haremos una breve descripción de otros sistemas, también basados en Unix.

Muchas de estas distribuciones Linux tienen una versión LiveCD, que puede ser ejecutada desde el CD o DVD, sin necesidad de instalarlo en el ordenador, con el fin de probarlo y evaluar el sistema antes de decidirse a instalarlo.


Linux para usuarios noveles o provenientes de Windows:

  • Ubuntu: Basado en el entorno Gnome.

  • Kubuntu: Basado en el entorno KDE.

  • Linex: Patrocinado por la Comunidad Autónoma de Extremadura.

  • GuadaLinex: Patrocinado por la Junta de Andalucía.

  • Molinux: Patronicando por la Comunidad Autónoma de Castilla-La Mancha



Linux para equipos antiguos:

  • Sam Linux: Mi favorita. En castellano, usando XFCE, FluxBox y Beryl+Emerald, que consume muy pocos recursos y está muy completita de aplicaciones.

  • DamnSmall Linux: Distribución supercompleta basada en entorno FluxBox, en apenas 50 MB, que arranca en los ordenadores más antiguos.

  • Slax: En apenas 200MB tienes un sistema muy completito, basado en el entorno KDE.

  • XFLD: Distribución oficial de XFCE.

  • Xubuntu: La versión de Ubuntu para entorno XFCE.

  • Vector Linux: Distribución completita basada en XFCE

  • Zenwalk: Otra distribución bastante cargada de aplicaciones basada en XFCE


Si quieres un análisis exhaustivo de estas y otras muchas distribuciones de Linux ligeras, te recomiendo leer mi anterior post: http://rafinguer.blogspot.com/2007/04/distribuciones-linux-para-equipos.html

Linux profesional:

  • Debian: Sin duda alguna, la distribución más estable, basada en aplicaciones y utilidades de reconocido prestigio, calidad y estabilidad. La instalación puede ser un suplicio, pero te aseguras una instalación y una configuración a medida, con lo que quieres y no con elementos de más.

  • RedHat Fedora: De mis favoritas. Te la recomiendo.

  • Mandriva: Anteriormente como Mandrake, es una distribución muy innovadora, con lo último de lo último en utilidades y aplicaciones, algunas de ellas en versión beta.

  • OpenSuse: La versión comunitaria de Suse. Una distribución robusta, segura y fiable.

  • Slackware: Distribución consagrada de gran calidad y de gran aceptación en la comunidad Linux, sobre la que se construyen otras distribuciones Linux.

  • Knoppix: Distribución LiveCD que está supercompletísima de aplicaciones y que puedes utilizar sin necesidad de instalarla.



Linux para servidores
Aunque cualquier distribución Linux puede usarse en servidores (instalando aplicaciones dedicadas a sus menesteres), hay distribuciones especializadas en grandes servidores, en alta disponibilidad, backups, monitorización de red, seguridad, etc. La mayor parte de ellos son versiones de pago de reconocidas
distribuciones (como RedHat o Suse), pero hay alguna que es gratuita.


  • Ubuntu Server Edition: Versión para servidores de Ubuntu.

  • CentOS: Distribución profesional para servidores, con multitud de utilidades para redes y seguridad.

  • OpenNA Linux: Eficaz distribución para temas de seguridad.

  • Trustix Secure Linux: Distribución Linux dedicada especialmente a la seguridad y a la estabilidad de servidores.



Otras distribuciones Linux
Existen ya cerca del centenar de distribuciones Linux, cada una especializada u orientada a algún punto especial. En este artículo, las anteriores distribuciones son las más populares y/o están contempladas en el idioma castellano. Si quieres conocer cualquier distribución Linux y su cometido, te recomiendo visitar los siguientes enlaces:

  • Distrowatch: La lista más prestigiosa de distribuciones Linux. Se actualiza a diario.

  • Distromania: Otra conocida lista de distribuciones Linux.



Otros sistemas operativos libres:
La lista anterior estaba enfocada al mundo Linux, pero hay más vida fuera de Windows y Linux.

  • FreeBSD: Fantástico SO basado en BSD Unix.

  • OpenBSD: Otro estupendo SO basado en BSD Unix.

  • OpenSolaris: La versión liberada de Solaris, de Sun Microsystems, basado en Unix.



UTILIDADES

Gracias al concepto de software libre, podremos disfrutar de infinidad de utilidades que innumerables programadores de todo el mundo, para cualquier sistema operativo y para cualquier propósito.

En el presente artículo sólo trata de citar las más populares y para los propósitos más estándar.

Ofimática

  • OpenOffice: (Windows/Linux/MacOS X) Completo paquete ofimático que nada tiene que envidiar al Microsoft Office. Además es totalmente compatible con áquel y la interfaz de usuario es muy similar. Incluye: procesador de textos, hoja de cálculo, base de datos (con informes y formularios), presentaciones, diseño gráfico (vectorial, organigramas, etc.) y generador de fórmulas matemáticas.

  • KOffice: (Linux) Completo paquete ofimático compatible con MS Office. Está diseñados especialmente para el entorno KDE de Linux. Incorpora: procesador de textos, hoja de cálculo, presentaciones, hoja de cálculo (con informes y formularios), diseñador de diagramas (incluyendo los de flujo), diseño vectorial, diseño y editor de imágenes, gestión de proyectos (diagramas de gantt), gráficos estadísticos, generador de fórmulas matemáticas y generador profesional de informes.

  • Abiword: (Windows/Linux/MacOS X) Estupendo procesador de textos compatible con MS Word. Utiliza muy pocos recursos, por lo que puede utilizarse en entornos ligeros de Linux.

  • Gnumeric: (Windows/Linux) Estupenda hoja de cálculo compatible con MS Excel. Utiliza muy pocos recursos, y puede ser utilizada en entornos ligeros de Linux.



Antivirus

  • Antivir Personal: (Windows) Excelente antivirus que detecta de todo y se actualiza automáticamente casi a diario. Lo he usado durante años y nunca he tenido problemas de virus ni de troyanos ni de spyware ni de malware... TE LO RECOMIENDO!!!

  • Clam Antivirus: (Linux) Excelente antivirus para entornos Unix.

  • Clam Win: (Windows) Excelente antivirus que no dejará que los bichitos entren en tu ordenador. Se actualiza casi a diario. Lo utilizo junto con Antivir y la protección es total, sin mermar mucho la capacidad del ordenador.



Grabadora

  • CDBurner XP: (Windows) Una alternativa a Nero. Completo programa para quemar CD's y DVD's, admitiendo formato de audio y datos. Permite quemar y crear imágenes ISO (incluyendo el formato nrg (Nero)). También permite riperar discos de audio a wav, mp3, wma y ogg.

  • K3B: (Linux) La auténtica alternativa al Nero para Linux. Permite hacer casi todas las funciones de Nero, incluyendo los formatos ISO de éste. También permite ripear un DVD a formato AVI.



Bases de Datos

  • MySQL: (Windows / Linux / Solaris / FreeBSD / MacOS X / HP UX / IBM AIX / Novell Netware) Base de datos profesional, de gran calidad, eficiencia, rapidez y estabilidad, con capacidad de clustering, y que incluye utilidades para su administración y gestión, que puede ser utilizada desde casi cualquier lenguaje de programación: Java, C/C++, Phyton, Perl, PHP, Ruby.

  • Postgre SQL: (Windows / Linux / Solaris / AIX / BSD / HP UX / MacOS X / SGI Irix) Extraordinaria y madura (más de 15 años) base de datos profesional de muy bajo mantenimiento, de gran rapidez, eficiencia y estabilidad. Desarrollada por la Universidad de California de Berkeley, ha aportado en su historia multitud de ideas y de innovaciones que se han convertido en estándares en el mundo de las bases de datos: queries complejas, claves foráneas, triggers, vistas, integridad transaccional, tipos de datos, funciones agregadas, etc..Incorpora todas las características de una base de datos profesional (procedimientos almacenados, triggers, etc.). Puede ser utilizada de forma nativa en casi cualquier lenguaje de programación.

  • Firebird: (Windows / Linux / HP UX / Solaris / FreeBSD / MacOS X) Base de datos ligera y rapidísima, concebida en 1981 a partir de Borland Interbase, y que soporta los estándares ANSI SQL, triggers y procedimientos almacenados. Su mayor ventaja es que tiene muy bajo mantenimiento, por lo que no necesita de administradores (DBA's).

  • SQLite: (Windows / Linux) Base de datos minimalista basada en SQL y en una librería C.



Utilidades para bases de datos

  • Ferret: (Linux) Excelente herramienta para diseñar modelos de entidad/relación, generarlos mediante ingeniería inversa, y generar el SQL correspondiente.

  • DBDesigner: (Windows / Linux) Excelente herramienta para diseño de modelos de entidad/relación, mantenimiento de base de datos, y generador de queries, para MySQL.

  • PgAdmin: (Windows / Linux / Free BSD / MacOS X / OpenBSD / Solaris) Aplicación para diseñar y gestionar visualmente todos los elementos y objetos de las bases de datos PostgreSQL.

  • Tora: (Windows / Linux) La alternativa al TOAD de Oracle. Permite gestionar prácticamente de todo: múltiples conexiones, gestión SQL (estadísticas de ejecución, autocompletación de código, resaltado de sintáxis, resultado en forma de chart, parseo PL/SQL...), edición de tablas y vistas, referencias y dependencias, editor y depurador de PL/SQL, tuneo de servidor, gestión de seguridad, análisis y estadísticas, etc.



Retoque fotográfico

  • The Gimp: (Windows/Linux/MacOS X) La alternativa a PhotoShop. Es un extraordinario y potente programa para la edición de fotografías, que incorpora multitud de herramientas y filtros profesionales. Para los que están acostumbrados a la interfaz de Photoshop les costará un poco adaptarse a la de Gimp, pero los resultados son extraordinarios.

  • Paint.NET: (Windows) Sencilla y potente utilidad para retocar fotografías y dibujar. Necesitarás instalar el framework de .NET



Diseño vectorial

  • InkScape: (Windows/Linux/MacOS X) La alternativa a CorelDraw, Freehand o Illustrator. Los dibujos vectoriales están basados en curvas Bezier y en trazos, lo cual, al dimensionar los gráficos no pierden resolución, ya que se redibujan adaptándose al nuevo tamaño. Incorpora multitud de opciones e interacción con gráficos no vectoriales (fotografías).

  • SodiPodi: (Windows/Linux) Otro fantástico programa para crear tus ilustraciones basadas en vectores.



Autoedición

  • Scribus: (Windows/Linux/Mac) La alternativa a PageMaker, QuarkXpress o InDesign. La autoedición permite maquetar libros, revistas o cualquier tipo de trabajo de imprenta basada en textos, que exige mucho más que un simple procesador de textos, como distribución de cuadernillas, forma de columnas, distribución de elementos en la maquetación, redistribución de texto entre formas de texto, etc. Permite importar textos de Word, OpenOffice, RTF,
    HTML.



Modelado y animación 3D

  • Blender 3D: (Windows / Linux / MacOS X / FreeBSD / SGI Irix / Sun Solaris) Una alternativa muy seria a 3D Studio o Maya. Lo tiene casi prácticamente todo lo que necesitas para realizar tus trabajos 3D profesionales: rendering, modelado, animación, interacción de esqueletos, sombreado, reflejos, luces, física, partículas, etc. Permite importar y exportar multitud de formatos 3D y 2D de otros productos.



Diseño de páginas Web

  • Quanta Plus: (Linux) Fantástica aplicación para entornos KDE, que permite diseñar web de forma visual, intuitiva y sencilla, pudiendo gestionar hojas de estilo y desarrollar con PHP.

  • NVU: (Windows / Linux / MacOS X) Extraordinario programa para el diseño de páginas web de forma visual. Alternancia entre modo WYSIWYG y modo código.

  • Bluefish: (Linux) Entorno para diseñadores de páginas web y programadores, muy ligero. rápido, sencillo, visual (WYSIWYG), trabajo simultáneo con múltiples documentos y múltiples proyectos, sintáxis para varios lenguajes de programación (Python, Perl, HTML, PHP, C, Java, JSP, JavaScript, SQL, XML, CSS, Pascal...), barras de herramientas preparadas para HTML, lenguaje español, etc.

  • Amaya: (Windows / Linux / MacOS X) Editor/navegador de XHTML, que asegura que el código cumpla con la normativa del World Wide Web Consortium.



Programación

  • Mono: (Windows / Linux / Solaris / MacOS X) Versión open source para el desarrollo de aplicaciones basadas en .NET.

  • Mono Develop: (Linux) Entorno de desarrollo para Mono.

  • Gambas: (Windows / Linux / FreeBSD / MacOS X / NetBSD / Solaris) Desarrollo visual del lenguaje Basic (como Visual Basic). Permite acceder a bases de datos MySQL, PostgreSQL y SQLlite, crear aplicaciones basadas en red, OpenGL 3D, formularios, etc.

  • Lazarus: (Windows / Linux / MacOS X) Desarrollo visual en Pascal (como Delphi). Permite acceder a bases de datos PostgreSQL, formularios, OpenGL 3D, etc.

  • Java: (Windows / Linux) El lenguaje por excelencia de los últimos 10 años no necesita presentación. Es un lenguaje orientado a objetos muy similar a C/C++, que dispone de infinidad de librerías para casi cualquier cosa: servicios web, servlets, beans, mail, gráficos 2d y 3d, applets, interfaces gráficas de usuario, acceso a bases de datos, applets, etc.

  • Eclipse: (Windows / Linux / Solaris / AIX / HP UX / Mac OS X) El entorno por excelencia para programar en Java. Permite añadir plug-ins para trabajar con otros lenguajes, servidores de aplicaciones, añadir nuevas funcionalidades al entorno, trabajar con frameworks específicos, e incluso para desarrollar otros plug-ins.

  • NetBeans: (Windows / Linux) Excelente entorno de desarrollo integrado para Java, que da soporte a todas las necesidades que necesitemos, incluyendo desarrollos web, movilidad (PDA, teléfonos móviles, etc.), Web Services, etc. También permite el uso del entorno para aplicaciones de C++

  • FreePascal: (Windows / DOS / Linux / FreeBSD / MacOS X / OS/2 / Netware / MorphOS) Compilador de Pascal y Object Pascal. Es compatible con Delphi y puede ejecutarse en diferentes microprocesadores (Intel, AMD (x86/64), PowerPC y Sparc).

  • GNU Pascal: (Windows / Linux / FreeBSD / OpenBSD / NetBSD / DOS / OS2 / MacOS X / SGI Irix / Alpha / Solaris / HP UX) Compilador de Pascal.

  • DevC++: (Windows) Entorno de desarrollo para C/C++

  • DevPascal: (Windows) Entorno de desarrollo para Pascal

  • Nemesis Pascal: (Windows / Linux) Entorno de desarrollo para Pascal, que es compatible con Delphi/Kylix.

  • PHP: (Windows / Linux) El lenguaje de generación dinámica de páginas web por excelencia, con multitud de funciones adicionales: acceso a bases de datos, web services, interpretación de XML, etc.



UML

  • Umbrello UML: (Linux) Excelente programa para entornos KDE, para el diseño de modelos UML: casos de uso, diagramas de clases y diagramas de actividades. También permite generar e importar código.

  • ArgoUML: (Windows / Linux) Extraordinario y completísimo programa para diseño de modelos UML: casos de uso, diagramas de clases, diagramas de estado, etc. Permite documentar los objetos del diagrama, realizar ingeniería inversa, generar código, etc.

  • StarUML: (Windows) Otra aplicación para diseñar modelos UML.




Gestión de proyectos

  • Gantt Project: (Windows) Una interesante alternativa a MS Project. Incluye diagramas de PERT y de Gantt, jerarquía de tareas y dependencias, diagrama de carga de recursos, importación/exportación de archivos de MS Project, etc.

  • Openworkbench: (Windows) Alternativa muy seria a MS Project. Es una aplicación muy completa y cuidada, con multitud de características: estructuras WBS con actividades, fases, tareas e hitos, dependencias entre tareas, creación de subproyectos y enlace a proyectos padre, dependencias entre proyectos, asociación de líneas guía don tareas, propiedades
    avanzadas de tareas, gestión de calendarios, autoscheduling, gestión de recursos (personas y materiales), asignación de recursos a tareas, seguimiento de tareas, porcentaje de completación de tareas, análisis de tiempos ganados, gestión de línea base, etc.




CONCLUSIONES

Esta no es si no una ínfima parte de la cantidad de aplicaciones que se pueden encontrar como software libre. Quizá en otro post me anime a exponer otro tipo de utilidades que no se han mencionado aquí.

Recordemos que el software libre no significa gratuito, y disponer del código y de la libertad de poder adaptar la aplicación a nuestras necesidades y tener las garantías de que hay toda una comunidad detrás para corregir cualquier error, da una tranquilidad que no tiene precio. La garantía de saber que el código de la aplicación está disponible te da el sosiego de confiar en un código que no es malicioso, que no está espiándote, que no está obteniendo datos sin tu permiso, y que puedes comprobar qué hace.

Aunque podamos descargarlo de forma gratuita, no significa que sea gratis. A la mayoría de los productores de software libre les interesa que su software sea conocido, y la gratuidad de la descarga y la instalación es una promoción que no tiene precio. Pero si vas a usar ese software y quieres un soporte que te solucione cualquier incidencia, o si quieres que te adapten el software a una funcionalidad específica que requieras, o quieres suscribirte actualizaciones periódicas, entonces debes contratar dicho soporte. Esa es la fuente de ingresos que tienen los desarrolladores. También puedes hacer donativos altruistas, e incluso comprar algún producto de merchandising que te ofrecen (camisetas, jarras, etc.).