Comandos útiles en Ubuntu

Hoy vamos a ver unos cuantos comandos bastante útiles para Ubuntu. No iremos sobre aquellos comandos básicos, sino algunos que puede que sean menos conocidos. Queremos especificar que son para Ubuntu ya que es posible que no funcionen en alguna otra distribución Linux, como por ejemplos los relacionados con repositorios:

tail -F <Nombre de archivo>

Este comando puede ser muy útil para leer logs. Imprime por pantalla en tiempo real el fichero que pasemos como entrada. Si utilizamos grep de la siguiente forma:

tail -F <Nombre de archivo> | grep "<frase a buscar>"

sólo se imprime la frase que coincida con la cadena en el archivo.

sudo apt-get install <nombre del programa>

Apt-get es el famoso programa para instalar otros programas que se encuentren en los repositorios. Recuerda que para usarlo debe ser root (sudo). Para encontrar el nombre a introducir, nos basta con una rápida búsqueda en internet poniendo el comando y el nombre del programa después.

gnome-open <nombre del archivo>
[/code]
Cuando queremos abrir directamente un archivo desde la máquina de comandos y no sabemos que programa puede abrirlo, podemos usar este comando, que abre el archivo con el programa por defecto


find . -name "*" -exec <comando> <parámetros> {} \;

Con este otro comando podemos hacer una búsqueda recursiva y aplicar otro comando sobre todos los archivos que haya en la carpeta que nos encontremos y en sus subcarpetas. Por ejemplo, podríamos buscar todas las apariciones de la palabra "include" en todos las librerías de uno de nuestros programas de la siguiente forma:

find . -name "*.h" -exec grep -H -i "include" {} \;

Con el flag -H imprimimos el nombre del archivo antes de cada ocurrencia, y con -i nos evitamos la distinción entre mayúsculas y minúsculas.

history | grep <comando a buscar>

Cuando no recordamos el uso de un comando que hemos usado recientemente, podemos usar este truco para ver como fue usado por última vez, si es que aún se encuentra dentro de nuestro historial. Por ejemplo, si no recordamos el nombre de un servidor al que nos conectamos hace poco por ssh, podemos probar algo como esto:

history | grep ssh

Y obtenemos todas las últimas conexiones ssh que hemos realizado.

cat <nombre archivo> | more

Cuando intentamos imprimir en pantalla archivos demasiado grandes, podemos usar el comando more, el cual nos permite ver el archivo desde el principio e ir bajando línea a línea pulsando Enter.

Si sabes algún comando que no sea tan conocido pero aún así bastante útil, no dudes en colaborar en los comentarios!

Un saludo!

IDE libres

Muchos de los entornos de desarrollo para programadores son Software Libre. Esto facilita a cualquier persona el aprendizaje de lenguajes de programación y, además, la posibilidad de colaborar en proyectos de Software Libre. Y es que los IDEs más usados están liberados bajo licencias libres. Algunos ejemplos son los siguientes:

Eclipse: Uno de los IDEs más famosos, multiplataforma y con soporte para una gran variedad de lenguajes de programación, aún que está centrado principalmente en Java. Además tiene la posiblidad de incluir plug-ins para añadir funcionalidades, como incluir el sistema de control de versiones o facilitar la documentación de proyectos. Es dirigido por la Fundación Eclipse y se compone de una comunidad que lo mantiene en constante desarrollo. Actualmente se compone de más de 2 millones de líneas de código, la mayoría en Java, y el coste que se ha estimado que valdría crear un IDE como Eclipse es de más de 80 millones de dólares.

NetBeans: Compite en la lucha con Eclipse por ser el IDE más usado para el lenguaje Java, aún que también se puede programar en otros lenguajes como PHP o Python. Tiene un número de líneas de código muy parecido al de Eclipse, y también es desarrollado en su mayoría en Java, por lo que la estimación del coste es tal proyecto es muy similar.

Dev C++: Este IDE está centrado en programación en C y C++ y usa una versión del popular compilador GCC, el cual fue desarrollado por Richard Stallman. Está creado en Delphi.

Kdevelop: Diseñado para el sistema operativo GNU/Linux, en especial para el entorno gráfico KDE, aún que también funciona en Gnome. En realidad es un conjunto de herramientas que componen un IDE; por ejemplo, el compilador es GCC y el editor de texto Kate, también desarrollado para KDE. Se centra principalmente en C/C++.

MonoDevelop: Para el entorno .NET, este IDE, el cual es un fork de SharpDevelop, es ampliamente usado, a pesar de que hasta el momento el más usado para este lenguaje de programación es el creado por Windows.

BlueFish: Es un editor de HTML, enfocado a la edición de webs interactivas. La estimación del coste de tal proyecto es de 1.5 millones de Dólares.

Eso es todo, un saludo!

35% de código libre en aplicaciones europeas

Este mes el CENATIC (Centro Nacional de Referencia de Aplicaciones de las TIC basadas en fuentes abiertas) ha desvelado un estudio llamado «Impacto de la reutilización del software de fuentes abiertas en la economía» el cual concluye a través de encuentas que, en los proyectos de empresas europeas, el 35% del código utilizado viene de Software liberado con licencias libres.

Cenatic

Siempre ha sido un problema la cuantificación del impacto del Software Libre a la economía. A través de este estudio, se ha conocido que el ahorro que ha supuesto a la Unión Europea el Software Libre se eleva, como mínimo, a 114.000 millones de Euros. Este cálculo se ha hecho a través de un herramienta desarrollada por el mismo CENATIC que trata de medir el ahorro que supone el contacto con el Software Libre a las empresas, ya sea a través de utilización, migración, apoyo en la comunidad etc.

Además, hay otra diferencia destacable que refleja este estudio. La calidad del código reutilizado es sustancialmente mayor. Esto es debido a que es compartido, y por ello es más fácil encontrar error y corregirlos comparado con un código que no se comparte. Esto produce ahorros en mantenimiento. Además, reduce de manera significante la tasa de fracaso de proyectos.

El efecto que este ahorro produce es una reinversión en TI, ya que se verifica que no hay una disminución la inversión. Esto repercute tanto en la calidad del software desarrollado como en la productividad de la empresa, lo que lleva a aumentar la competitividad. Esta mejora de la productividad está estimada en 342.000 millones de Euros al año en términos de valor añadido económico.

Un saludo!

Fuentes:

La escalera de adopción del Software Libre

Carlo Daffara, en su ensayo The Small Medium Enterprise Guide to Open Source Software, nos muestra el concepto de la escalera de adopción de Software Libre en las empresas. Esto no quiere decir que todas las empresas sigan todos los pasos hasta lo más alto de la escalera, sino que este sería el camino que seguirían en caso de que llegaran al último escalón.

Escalera de adopción del Software Libre

 

  • Use: La empresa, debido a una necesidad, empieza a usar Software Libre. Es el primer contacto, y en este punto la empresa aún no con la comunidad que desarrolla ese Software. Este primer contacto se produce normalmente por el ahorro que supone el uso de este tipo de Software. 
  • Contribution: En este escalón, se ve directamente una contribución al proyecto por parte de la empresa que ha adoptado el Software. No necesariamente tiene que ser a través del desarrollo de la aplicación, sino también asistiendo a eventos o promocionando el proyecto. Una de las causas de tomar tal decisión puede ser que la empresa tiene en ese momento una dependencia importante en ese Software. Esto produce un beneficio tanto para la empresa que adopta el Software como para el Software adoptado.
  • Champion: En este momento, la empresa emplea una parte significante de recursos al desarrollo de tal Software Libre. El apoyo es mucho mayor y más activo que en la primera fase, y la empresa ya tiene un número considerable de desarrolladores en el proyecto.
  • Collaborate and redefine: En este último paso el Software Libre juega un papel importante en el modelo de negocio de la empresa. Incluso se producen cambios en la estructura de la empresa para adoptarse al proyecto. También se adopta una filosofía más acorde con el desarrollo de Software Libre, apoyando creación de proyectos independientes, incluso cuando estos pueden convertirse en competidores directos.

Un saludo!

El archivo .bashrc

Este archivo de configuración, para los que estamos acostumbrados a usar el entorno Shell, es de vital importancia y conocerlo nos simplificará mucho la vida a los que trabajamos bajo alguna distribución Linux. Suele encontrarse en nuestro $HOME, pero por si acaso podemos buscarlo con el siguiente comando:


find / -name .bashrc

Lo primero de todo es saber que, en cuanto abramos una Shell Linux, este archivo se ejecutará. Por lo tanto podemos configurar nuestra Shell con todo lo que se nos ocurra poner dentro.

Entre todas las opciones que podemos configurar en nuestro entorno Shell, una es la asignación de variables, por ejemplo de la siguiente forma:


export WORKDIR=$HOME/directoriotrabajo

De esta forma podemos hacer algo como:


cd $WORKDIR

para ir directamente a nuestro directorio de trabajo, que es allí donde tendremos nuestro entorno. También podemos asignar alias, lo cual es de tremenda utilidad; aquí van unos cuantos alias bastante útiles:


## Volver a directorio anterior
alias ..='cd ..'
## Volver dos directorios atrás
alias ...='cd ../..'
## Comando history sustituido por h
alias h='history'
## Ejecutar apt-get con permisos root
alias apt-get='sudo apt-get'
## salida de ls ordenada en tiempo de modificación
alias ls='ls -talr'
## Por si no equivocamos al escribir cd ..
alias cd..='cd ..'
## Borrar logs del directorio de trabajo
alias rmlogs='rm -rf $WORKDIR/logs'
## Ejecutar script que configura variables de entorno
alias setVar='$WORKDIR/scripts/setVar.sh'
## Preguntar antes de borrar archivo
alias rm='rm -i'

Como vemos, los alias nos dan mucha funcionalidad y nos permite ahorrar mucho tiempo.  Otra gran funcionalidad del archivo .bashrc es agrandar la cantidad de comandos que quedan almacenados en el historial. Si ejecutamos lo siguiente:

history

Obtendremos un historial de los últimos comandos que hemos ejecutado. Si usamos el siguiente código:

history | grep ssh

Obtendremos todas las conexiones ssh que hemos hecho últimamente. La parte mala, es que a veces necesitamos echarle un ojo a comandos que ya han sido borrados del historial. Para ello, podemos cambiar el número de comandos que se guardan modificando la siguiente línea:

HISTSIZE=50000

Con esto, los últimos 50.000 comandos serán guardados. Si te hacen falta más, siempre puedes cambiar el número a tu gusto!

Un saludo!

Ejecutar aplicación Windows en Linux

Muchas veces, y aún que la comunidad de Software Libre es muy extensa, algunos programas se escapan de la mano de Linux y sólo tienen versión para Windows. Por suerte, esto cada vez sucede con menos frecuencia, pero para los casos en los que no es posible recurrir a una alternativa libre, mostramos algunas opciones para ejecutar una aplicación para Windows en nuestra distribución Linux.

Wine

La principal de todas. Wine (Wine Is Not an Emulator) es una implementación de la interfaz de Windows para la ejecución de aplicaciones en Unix. Los podemos descargar directamente de los repositorios en Ubuntu. Fue de gran importante en años anteriores cuando no había tantas alternativas libres al software privativo. Para instalarlo en Ubuntu debemos escribir lo siguiente en una Shell:


sudo apt-get install wine

VirtualBox

Con VirtualBox siempre podremos crear una máquina virtual (si es que disponemos de una imagen de disco) y ejecutar las aplicaciones de Windows como si nos encontráramos en esa misma plataforma pero sin salir de nuestro GNU/Linux. Podemos instalarlo de la siguiente forma:


sudo apt-get install virtualbox-4.2

Qemu

Un emulador de procesadores, es capaz de ejecutar procesos que han sido compilados en otra plataforma (Windows )de la que nos encontramos (GNU/Linux). La ventaja sobre la creación de una máquina virtual es que no es necesario el proceso de asignación de memoria a la máquina virtual.

Y si no…

…siempre podemos buscar una alternativa que, aún que no sea exactamente lo que buscábamos, cubra la mayoría de las funcionalidades de la aplicación que usamos en Windows e incluso puede que tenga algunas más muy interesantes. A día de hoy la cantidad de programas libres es tan amplia que es muy difícil no encontrar una alternativa que cumpla con nuestras necesidades.

Un saludo!

 

Formas de colaborar en un proyecto de SwL

Aún que normalmente tengamos en mente que colaborar con un proyecto de Software Libre sea programando, ya sea añadiendo nuevas funcionalidades o eliminando errores actuales, hay muchas otras formas en las que se puede colaborar y en las que, probablemente, los desarrolladores del proyecto agradecerían tanto como cualquier otra. Estas son las formas más comunes de ayudar en un proyecto:

Manual

La creación de un manual para el usuario final del software es fundamental. No olvidemos que la finalidad siempre es que el software sea usado por la mayor cantidad de gente posible, y para ello un manual puede ser completamente necesario, como por ejemplo en proyectos como GIMP. Por esto, crear y mantener durante el tiempo uno es de gran importancia. También hay otros tipos de documentación que pueden ser útiles, algunos de ellos más técnicos (configuración del entorno de desarrollo, diagramas de secuencia…).

Traducción

Las primeras versiones de software libre suelen ser liberadas en inglés. Una vez que van siendo más estables y acaparando mercado, es necesario que sea traducido a otros idiomas para ampliar su base de usuarios. Como ejemplo, Gnome está traducido en 166 idiomas, por lo que la barrera idiomática no es un gran problema para su uso.

Creación de Parches

Ésta probablemente sea la función principal en el proyecto. El desarrollo de nuevas funcionalidades y soluciones a bugs es la función que más popularidad reporta, pero también la más difícil. Para ello hay que aprender el estilo de programación del proyecto y entender el funcionamiento del código que vayamos a modificar.

Testear

La función de crear tests para probar la funcionalidad del software a través de los cambios que se producen en él también es de vital importancia. Se ha de mantener la funcionalidad a pesar de que se produzcan cambios en el software; no romper algo que funcionaba antes por arreglar otra cosa. Un tester también se encarga de reportar bugs.

Reportar bugs

Cada proyecto suele tener una herramienta para administrar bugs e incluso nuevas funcionalidades (por ejemplo, Bugzilla). Cualquier usuario puede reportar errores en la aplicación o proponer nuevas funcionalidades. Antes de hacerlo, siempre es bueno echar un ojo a otros reportes de bugs para conocer como es la forma concreta de crear uno y que al final se consiga un cambio.

Otros

En un intento de hacer que el software libre tenga otra distribución más amplia, siempre hay algo que podamos hacer para ayudar. Como por ejemplo ayudar en la creación o mejora de una página web, la instrucción sobre el funcionamiento a otros usuarios, o el ofrecimiento de cobertura legal al proyecto.

De todas formas, cualquier ayuda siempre es bien recibida, así que cualquiera puede ser útil a un proyecto de Software Libre.

Un saludo!

GNOME y KDE

Hoy hablamos de los dos entornos de escritorio más importantes en el mundo del Software Libre. GNOME es el entorno de escritorio por defecto en distribuciones como Debian, Fedora, Red Hat Enterprise Edition o Ubuntu (interfaz Unity a partir de 11.04), mientras que KDE lo es de BackTrack, Kubuntu o OpenSuse.

GNOME

Iniciado por los famosos desarrolladores Miguel de Icaza y Federico Mena y programado en su mayor parte en C, nació en realidad como otra propuesta además del ya existente KDE, propone un entorno de escritorio sencillo y en multitud de idiomas. Una de sus características es que se compone de varios escritorios de trabajo independientes entre si, como si tuviéramos distintas pantallas. Esto es útil para mantener un orden en nuestro escritorio, ya que siempre acaba lleno de ventanas y termina siendo bastante caos. Por supuesto es posible pasar ventanas de un escritorio a otro. También añade una gran capacidad de configuración y aplicaciones como el procesador de textos gedit o gnomecalc. La versión 3 supuso un gran cambio que fue criticado; se dejo de usar la idea de una barra de herramientas en el borde inferior de la pantalla con las aplicaciones abiertas, por una lateral con algunas por defecto y las que el usuario va abriendo. Esto llevó a algunas distribuciones a dejar de usar GNOME, como Ubuntu que se pasó a Unity (creada por la misma empresa que desarrolla Ubuntu). No obstante, también cabe decir que Unity fue posiblemente aún más criticado por la introducción de publicidad en las búsquedas (solución al problema). Podemos descargarnos software de GNOME desde aquí: Gnome.

KDE

Se compone de una comunidad  que produce tanto el entorno como multitud de aplicaciones. Entre las más famosas se encuentran el IDE KDevelop, el navegador Konqueror o el editor de texto Kate. El funcionamiento de la comunidad carece de orden jerárquico, lo que hace que las decisiones se tomen entre muchos desarrolladores y no sólo por el creador, Matthias Ettrich, el cual, en 1996, empezó KDE como interfaz gráfica para sistemas Unix. Está programado en gran parte en C++ y usa la biblioteca Qt para gráficos. Es posible descargarse el código de KDE desde aquí Kde y contribuir al desarrollo ya sea arreglando o reportando bugs desde aquí Kde Bugtracking System.

Eso es todo por hoy. Un saludo!

Alternativas libres al software más usado II

Volvemos con la segunda entrega de alternativas de Software Libre a los programas que más se usan:

Edición de imagen: GIMP

Esta alternativa cada vez se está volviendo más importante, intentando comerle terreno al popular Photoshop de Adobe. Viene por defecto en la mayoría de distribuciones de GNU/Linux y es parte del proyecto GNU, por lo que está disponible bajo GNU GPL. Su ventaja sobre Photoshop es que es multiplataforma, e incluye plugins y scripts. Podemos descargarlo desde aquí: GIMP. Aquí tenemos una de tantas guías que hay para aprender a usar GIMP Guía GIMP.

Editor de textos: Notepad++

Surge como una necesidad por la falta de editores de textos para programación en Windows. Incluye opciones avanzadas para desarrolladores, entre ellas soporte para varios lenguajes de programación. Se distribuye bajo GPL. Prueba de ello, esta referencia en su página web:

Notepad++ is a free (as in «free speech» and also as in «free beer») source code editor and Notepad replacement that supports several languages.

Lo podemos descargar desde aquí: Notepad++.

Gestor de descargas: JDownloader

Este software desarrollado en Java y liberado GPL fue uno de los primeros que permitía introducir enlaces para descarga directa. Además, es capaz de leer códigos captcha e incluso de descomprimir el archivo descargado para su uso directo. Además, desde el programa, se puede resetear el router para que se nos asigne otra IP, dependiendo del operador, y así saltarnos la restricción que imponen algunas webs de descarga directa. Lo podemos descargar desde aquí: JDownloader.

Edición de audio: Audacity

Es una herramienta licenciada con GPL de fácil uso, multiplataforma y muy popular en las distribuciones GNU/Linux. También tiene la opción de instalar plugins para aumentar su funcionalidad. Podemos descargar el software desde aquí Audacity y guías de uso desde aquí Guías Audacity.

Modelado 3D: Blender

Programa multiplataforma con licencia GPL, el cual avanza rápidamente en la industria del modelado gráfico gracias a su alta aceptación. Tiene una gran variedad de primitivas geométricas, también edita audio y vídeo y motor de juegos 3D integrado. Es posible incluso programar en Python para mayor control de gráficos. Descargable desde aquí: Blender.

PDFCreator

Como su propio nombre indica, este software convierte documentos a PDF. Se distribuye bajo licencia GNU GPL. La parte mala es que sólo existe versión para Windows. Además, es posible que haya perdido popularidad ya que varias Suites Ofimáticas ya ofrecen tal opción. Se puede descargar desde aquí: PDFCreator.

Un saludo!

Alternativas libres al software más usado I

En esta entrada queremos ofrecer las alternativas posibles que nos ofrece el Software Libre para programas privativos de amplio uso. Muchos de estos programas son mejores que cualquier otra versión privada que se pueda adquirir en el mercado, por lo que deja de tener ningún sentido ofrecerlos sin liberar el código. La excusa del uso del software privativo porque tiene más calidad se queda obsoleta en la mayoría de los casos.

Compresión de archivos: 7Zip

Esta herramienta, la cual tiene liberado la mayoría de su código bajo licencia GPL, es el natural sustituto de WinRar, y además, multiplataforma. Tiene incluso su propio formato de compresión (7z). Descomprime cualquier tipo de formato, y es capaz de comprimir en 7z, Zip, Gzip, Bzip2 y Tar. Además, nos ahorraremos la molesta ventana del WinRar pidiéndonos que compremos su versión de pago ;-). Se puede conseguir aquí: 7Zip.

Navegador web: Firefox.

Es en muchos países el navegador más usado. Fue el primero en introducir los famosos plug-ins; pequeñas piezas de software que podemos instalar en nuestro navegador que realizan funciones dispares, como mostrar el tiempo, aumentar la seguridad de nuestra navegación, ofrecer herramientas para desarrolladores o tener acceso más rápido a nuestras aplicaciones preferidas. Ha sido desarrollado bajo la coordinación de la Mozilla Foundation. Podemos descargarlo desde aquí Mozilla Firefox.

Suite Ofimática: LibreOffice

Es un fork de OpenOffice, creado por The Document Foundation. Viene como Suite Ofimática por defecto en las distribuciones más importantes de Linux. Se compone de un editor de textos, hojas de cálculo, presentación de transparencias, un gesto de bases de datos, editor de gráficos y una herramienta para crear y editar fórmulas matemáticas. Esta completa Suite intenta sustituir al todopoderoso Windows Office, siendo compatible con todos sus formatos e incluyendo algunos nuevos propios. Está liberada bajo licencia GNU LGPL. También es multiplataforma. La podemos descargar desde aquí: LibreOffice.

Reproductor Multimedia: VLC.

En nuestra opinión, una de las piezas de software mejor desarrolladas y por supuesto, el mejor reproductor multimedia disponible actualmente. Este software libre bajo licencia GPL es capaz de reproducir cualquier formato con un alta calidad sin necesidad codecs.; suprime ruido de fondo, se le pueden añadir subtítulos y mejora la calidad del sonido original. Incluso podríamos decir que ha hecho desaparecer el molesto problema de tener que buscar codecs para un determinado tipo de formato cuando nuestro reproductor no era capaz de reconocerlo. También tiene muchas opciones como streaming, ver y descargar vídeos directamente de Internet, convertir entre formatos o grabar vídeos desde la webcam. Se puede descargar desde aquí: VLC.

Gestor de Blogs: WordPress

No tenemos que irnos más lejos para encontrar Software Libre; este mismo blog corre bajo la plataforma WordPress, un gestor de blogs con licencia GPL que actualmente es el más popular de Internet. Ofrece gran cantidad de plantillas, plug-ins y demás opciones para personalizar el blog personal a nuestro gusto. También es posible obtener más de estas opciones pagando. Cualquiera puede crearse su blog en WordPress desde aquí: WordPress.

Virtualización: Virtual Box

El software más popular para virtualización es también libre. Aún que al principio fue liberada con licencia privativa, actualmente nos podemos descargar su versión licenciada bajo GPL2 desde su web. VirtualBox. Soporta un amplio conjunto de sistemas operativos, dándonos la opción de montar directamente una máquina virtual desde una imagen ISO.

El viernes volveremos con más! Un saludo.