Actualmente estas viendo el weblog personal de Carlos Montalvo, un profesional en el desarrollo web con sede en la ciudad de Lima, Perú.

Suscribete a posts o comentarios

Sigueme en Twitter

Tips para programar en Linux

19 Aug

Escrito por hace 2 semanas y 17 horas | Sin Comentarios

Si hemos programado en Windows pero estamos interesados en la programación en Linux, estos consejos resultan especialmente útiles para cambiar algunas de las ideas y minimizar el choque ocasionado por el cambio de cultura cuando encontramos diferentes ideas y formas de pensar.

EVALUAR CADA ALTERNATIVA DISPONIBLE

A diferencia de la Interfaz de Programación de Aplicaciones (API) unificada en Windows que provee a los programadores con un único método para alcanzar un cierto objetivo, Linux provee diversas formas de alcanzar el mismo objetivo. Por ejemplo hay una variedad de cajas de herramientas (toolkits) de abstracción de la Interfaz Gráfica de Usuario (GUI), siendo las más importantes QT y GTK para escribir programas de Interfaz Gráfica de Usuario. Además, no se necesita elegir entre C o C++.

Hay muchas opciones para programar, incluyendo la escritura de una serie de comandos en un archivo de texto para el intérprete de comandos (shell scripting), Perl, Python y PHP. Así que no siempre hay que tener una idea fija de que se necesita aprender del modo “difícil”. No hay que abrumarse con las opciones. Sólo hay que ser consciente de ellas y tomar aquellas herramientas y técnicas con las que nos sintamos mejor.

LOS IDEs NO SON NECESARIAMENTE MÁS PRODUCTIVOS

Los programadores que han utilizado extensamente el Visual Studio de Microsoft para realizar sus desarrollos posiblemente se sientan incómodos al adaptarse a la manera en que se hacen las cosas en Linux. Aunque hay algunos Entornos Integrados de Desarrollo (IDEs, por sus siglas en inglés) bastante decentes en Linux, incluyendo a Kdevelop, Anjuta, Eclipse, ZendStudio y netBeans pudiéramos encontrar que utilizando un editor de texto y creando un archivo de descripción (make file, en inglés) sea una mejor idea a largo plazo. Cuando desarrollamos aplicaciones de Software Libre, posiblemente no queramos atar el desarrollo a una plataforma o a un Entorno Integrado de Desarrollo específicos, teniendo en cuenta que nuestro código será compartido y que otros programadores pudieran contribuir en el proyecto. A pesar de que los Entornos Integrados de Desarrollo no son una mala idea, posiblemente encontremos que al desarrollar proyectos más pequeños utilizando un editor de texto simple y un archivo de descripción sea una mejor idea.

NO BUSCAR CARACTERÍSTICAS ESPECÍFICAS DE UNA DISTRIBUCIÓN

Pudiera sorprender a muchos programadores de Windows saber que prácticamente se puede no hacer supuestos de la configuración por defecto de Linux en la máquina del usuario final. Diferentes distribuciones usan diferentes ubicaciones de archivos de configuración y ajustes. A menos de que estemos escribiendo una utilidad de configuración del sistema para una distribución en particular, no hay que hacer supuestos específicos de una distribución. De igual modo nunca hay que forzar a los usuarios a que trabajen como un administrador, a menos de que el propósito exclusivo de la aplicación sea el de modificar ajustes específicos del sistema.

NO MODIFICAR NI TRATAR DE MODIFICAR ARCHIVOS DEL SISTEMA.

Además de no ser una buena práctica de programación, no se puede asumir que determinado archivo de sistema existe en la máquina del usuario final (debido a diferencias específicas de la distribución). Tampoco podemos modificar archivos de sistema como un usuario “normal” (sin los privilegios necesarios) y no se supone que una aplicación normal de productividad sea ejecutada como administrador. En la mayoría de los casos, encontraremos que apenas tenemos alguna razón buena para tocar archivos específicos.

SER VISUALMENTE CONSISTENTE

Los programadores de la Interfaz Gráfica de Usuario, especialmente programadores de GTK y QT, necesitan entender que estas bibliotecas son bastante modificables (el usuario final puede modificar la apariencia visual de la Interfaz Gráfica de Usuario en casi cualquier forma posible). Por lo tanto, hay que evitar usar fuentes (de letra) o colores específicos en nuestra Interfaz Gráfica de Usuario. No es necesario. No hay que forzar al usuario final a que instale alguna fuente (de letra) particular en su sistema. Hay que dejar el despliegue visual de la aplicación exclusivamente a la biblioteca de la Interfaz Gráfica de Usuario que utilizamos. A menos de que estemos escribiendo un procesador de palabras casi nunca requeriremos manejar fuentes (de letra) en el código de nuestra aplicación.

ESTAR PREPARADOS PARA REALIZAR ALGO DE INVESTIGACIÓN

Linux no viene con una herramienta parecida al MSDN que nos proporcione documentación para cada herramienta de programación individual o para cada Interfaz de Programación de Aplicaciones que se encuentre disponible allá fuera. Esto no es práctico debido a que Linux no es desarrollado por una sola compañía. La mayoría de las veces si estamos utilizando bibliotecas de terceros, podremos encontrar documentación (ya sea a través de una descarga o en línea) en el sitio en Internet oficial del encargado de la biblioteca. También hay que estar conscientes de que muchas bibliotecas vienen con documentación incompleta o sin ella. Posiblemente tengamos que buscar código de muestra o hasta archivos de cabecera para aprender más acerca de una biblioteca en particular. Lo bueno es que probablemente no nos topemos con esta situación con la mayoría de las bibliotecas populares de terceros, aunque siempre es bueno estar preparados (por si acaso).

NO EMPAQUETAR DEPENDENCIAS

Cuando estamos creando paquetes que pueden ser distribuidos no hay que incluir dependencias junto con nuestra tarball (Bola de Alquitrán, paquete de archivos creados con la utilidad Unix tar). Sólo hay que incluir el código fuente y ofrecer instrucciones de compilación (entre más genéricas, mejor). También hay que mencionar las dependencias que son requeridas en los archivos LÉEME (README) o INSTALACÍON (INSTALL) y en nuestro sitio en Internet.

Ya que la mayoría de las distribuciones Linux poseen sus propios sistemas de gestión de paquetes (y si nuestra aplicación es lo suficientemente buena, posiblemente pueda ser incluida en el depósito de paquetes oficial), debemos de dejar el manejo de las dependencias al usuario final que compila nuestro programa en forma manual o al encargado del paquete de la distribución que envía nuestra aplicación como parte de su paquete.

Puesto que toda distribución Linux tiene una forma distinta de administrar las dependencias, no hay que intervenir con ellas creando una rutina de instalación que intente ser inteligente e instale otras bibliotecas. Aparte de crear problemas con las versiones, resulta tedioso y engorroso incluir dependencias con el programa.

También hay que probar y mantener las dependencias al mínimo, especialmente si nuestro programa tiende a usar bibliotecas exóticas de terceros.

Categorizado :Informatica

Etiquetado :Windows,Programación,Linux

Tiny Core Linux 2.5, tu Distro de Linux en 10MB

11 Nov

Escrito por hace 9 meses y 3 semanas | Sin Comentarios

logo_tiny_core_linux La muy pequeña y modular distribución Linux Tiny Core, acaba de lanzar hace unos días una nueva versión estable la 2.5.
Es una publicación mayor con muchas actualizaciones de paquetes y características, corrección de fallos e incluidas algunas pocas novedades.
Tiny Core tiene como requisitos mínimos un procesador 486DX y 32MB de memoria RAM pero se recomienda una Pentium 2 o superior, 128MB de memoria RAM.

tiny-core-linux

(Sigue leyendo »)

Categorizado :Informatica

Etiquetado :Linux,Tiny Core

Curso de tratamiento de imágenes con Gimp

10 Nov

Escrito por hace 9 meses y 3 semanas | Sin Comentarios

Para los que no conocen GIMP (GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito.

gimplogo

El Instituto Máquina Herramienta nos brinda un curso básico donde se trata sobre el buen manejo de esta herramienta gráfica llamada Gimp que empieza desde los conceptos más elementales como la diferencia entre imágenes vectoriales y mapa de bits, y llega a temas algo más avanzado como las capas o los niveles y curvas.

(Leer más »)

Categorizado :Diseño Web

Etiquetado :Linux,Gimp,Editor de Imagenes

Ubuntu 9.10 : Karmic Koala

29 Oct

Escrito por hace 10 meses y 4 días | 3 Comentarios

Hoy 29 de Octubre ha sido liberada la nueva versión de Ubuntu 9.10: Karmic Koala. Si ya tienes instalado Ubuntu pronto recibirás un aviso de el gestor de actualizaciones avisando que hay una nueva versión disponible y se puede actualizar el equipo.

karmic_koala

Antes de instalar por favor consulta las notas de liberación para evitar posibles problemas.

Alguna Novedades

  • Arranque y apagado más rápidos.  Los desarrolladores han logrado reducir sensiblemente el tiempo en cargar Ubuntu.
  • Empathy reemplaza a Pidgin. Hasta ahora Pidgin era el programa de mensajería por defecto. Lamentablemente se ha dormido en los laureles en cuanto a temas de charlas con vídeo.
  • Centro de software de Ubuntu. Facilitar la instalación de aplicaciones. Los usuarios novatos agradecerán esta ayuda, que facilita notablemente la instalación / desinstalación y actualización del software.
  • Instalación de fuentes (tipografías) más sencilla. Hasta ahora era algo engorroso instalar nuevas fuentes. En Ubuntu 9.10 se da un paso de gigante en esta tarea. Al pulsar sobre el archivo de la fuente, muestra una vista previa de la misma y un botón de "Instalar tipografía".
  • Gestor de redes renovado. Network Manager se actualiza, siendo más sencillo controlar nuestras conexiones de red (ya sean de cable o Wi-Fi).
  • Ubuntu One. Sistema para almacenar archivos, contactos y notas online. Ideal como copia de respaldo o para compartir archivos.
  • Ext4 por defecto. Sólo en las instalaciones desde 0, las actualizaciones desde Ubuntu 9.04 mantendrán el sistema Ext3.
  • PPAs mejorados. Entre otras cosas, las claves públicas se descargan automáticamente, lo cual es alivio para todos y un obstáculo menos para usuarios novatos.

Para descargar la ISO, podéis hacerlo desde el siguiente enlace

Ubuntu

Kubuntu

Xubuntu



O bien puedes pedir tu disco aqui

Categorizado :Informatica

Etiquetado :Linux,Open Source,Ubuntu,Karmic Koala

Juegos para Linux

17 Apr

Escrito por hace 1 año y 4 meses | 1 Comentario

Si ya te cansaste de los mini-juegos que vienen con Linux, atreve te a probar estos juegos 3D, Acción, Estrategia y más o de otros.

Categorizado :Entretenimiento

Etiquetado :Juegos,Linux

Instalar Lamp + SVN + Trac en Ubuntu II

16 Apr

Escrito por hace 1 año y 4 meses | 3 Comentarios

En la entrada anterior pudimos instalar un Servidor Web ahora veremos la instalación y configuración de SVN (Subversion).

ulamp

Instalación de SVN

Abrimos la consola (Terminal) y escribimos lo siguiente.

sudo apt-get install subversion
sudo a2enmod dav
sudo /etc/init.d/apache2 restart
sudo apt-get install libapache2-svn
sudo /etc/init.d/apache2 restart

subversion: Con esto instalamos subversion.
a2enmod dav: Activamos el modulo de Apache usado para hacer que los repositorios estén disponible a otros a través de una red.
/etc/init.d/apache2 restart: Reiniciamos el servidor web, esto es necesario para poder ver los cambios realizados.
libapache2-svn: Contiene los módulos que capacitan a Apache funcionar como un servidor de Subversion además del módulo de identificación.

Creación de Repositorio

Primero creamos el directorio:

sudo mkdir /var/svn

A continuación indicarle al Subversion que es un repositorio:

sudo svnadmin create /var/svn/repos

A continuación, abrir el archivo /etc/apache2/httpd.conf y añada las siguientes líneas:

<location>
DAV svn
SVNPath /var/svn/repos
AuthType Basic
AuthName "Repositorio Subversion"
AuthUserFile /etc/subversion/passwd
Require valid-user
</location>

Asignamos permisos para que el servidor web pueda modificar el repositorio:

sudo chown -R www-data /var/svn

Añadimos un usuario le asignamos la contraseña y reiniciamos el servidor web.

sudo htpasswd -c /etc/subversion/passwd calinsoft
sudo /etc/init.d/apache2 restart

Añadimos nuestro proyecto al repositorio, en mi caso mi proyecto lo tengo en esta dirección /home/calinsoft/bobi-system

svn import -m "Mi Primer Proyecto" /home/calinsoft/bobi-system file:///var/svn/repos/bobi-system/trunk

Ahora nos dirigimos a http://localhost/repos y nos pedira el usuario y password que hayamos asignado.

Si necesita un Cliente SVN similar a TortoiseSVN les recomiendo NautilusSVN

Continuara...

Categorizado :Informatica

Etiquetado :php,Linux,Ubuntu,MySQL,SVN,Track

Instalar Lamp + SVN + Trac en Ubuntu I

13 Apr

Escrito por hace 1 año y 4 meses | 3 Comentarios

Bueno esto es un asunto que siempre quise hacer en guindos y nunca pude, cuando lo intente en Linux me salio a la primera.

ulamp

Instalando Lamp (Linux Apache2 MySQL5 Php5 )

Abrimos la consola (Terminal) y escribimos lo siguiente.

sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5 php5-gd php5-cli
sudo /etc/init.d/apache2 restart

apache2: Con esto instalamos apache en nuestro Linux. para ver si esta activo vamos al navegador y digitalos http://localhost.

it-works

php5: Con esto instalamos el modulo Php5 para Apache.
libapache2-mod-php5: Instala el modulo de apache para traducir el php.
php5-gd: Modulo de php para la manipulación de las imágenes.
php5-cli(Command Line Interpreter): Para ejecutar php por linea de comando.
/etc/init.d/apache2 restart: Reiniciamos el servidor web, esto es necesario para poder ver los cambios realizados.

sudo apt-get install mysql-server
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
sudo /etc/init.d/apache2 restart

mysql-server: Instalamos MySQL, el servidor de base de datos.
libapache2-mod-auth-mysql: Modulo de apache para el manejo de autentificaciones con mysql.
php5-mysql: Modulo de php para manejo de conexiones con MySQL.
phpmyadmin: Administrador de MySQL atravez del navegador ( http://localhost/phpmyadmin ).

PD:Nos pedirá un nombre de usuario y contraseña, esos datos son los que definimos al momento de instalar MySQL.
PD2: Si nos muestra "The requested URL /phpmyadmin/ was not found on this server" ejecuta sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin esto creara un acceso directo el cual permitira ya ingresar a http://localhost/phpmyadmin

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

a2enmod rewrite: Activamos el Mod Rewrite.
En /var/www se publicara las paginas para tu servidor web donde puede probar el funcionamiento de Php, creando un archivo info.php y escribiendo adentro el cual de mostrara los parámetros de configuración y las variables de php y apache.
Continuara...

Categorizado :Informatica

Etiquetado :php,rewrite,Linux,Ubuntu,Apache2,MySQL

¿Por que prefiero Linux?

04 Dec

Escrito por hace 1 año y 8 meses | 3 Comentarios

Después de más de 13 años en el mundo de la informática, horas probando sistemas operativos, instalando drivers y solucionando algunos problemas de compatibilidad y luchando contra virus.

Ahora daré mis razones por que prefiero Linux en el trabajo y en la casa aunque la excepciones solo serian para los juegos :D

El orden es lo de menos en esta lista de mis razones mas importantes.

  • Puedo utilizar el hardware durante más de 5 años hasta que realmente necesite reemplazarlo.
  • Mi escritorio tiene efectos visuales mejores que el de vista, sin consumo excesivo de RAM
  • Puedo tener la última versión del sistema operativo con la seguridad que será mas veloz que su predecesor y con el mismo hardware (Véase WinXp a WinVista ).
  • Es seguro (sin preocupaciones de virus, worms, troyanos, malware, etc).
  • Puedo montar fácilmente un servidor de base de datos, servidor web, servidor de correo, etc sin tanta complicaciones.
  • Como desarrollo Aplicaciones web se me hace mas fácil trabajar en apache, php, mysql y con los permisos que en windows.
  • Tienes distribuciones para todo los tipos de colores y sabores
  • Mi sistema operativo arranca en menos de 40 segundos (incluyendo el tiempo en poner mi usuario y contraseña), con un ordenador de hace 5 años(Chupate esa Vista).
  • Por que es libre nada de licencias y para casi todo me brinda su código fuente hasta para el kernel :).
  • Tiene una gran comunidad de personas con ganas de ayudar.

Si quieres agregar algo o quieres corregirme algo adelante :) .

Categorizado :Informatica

Etiquetado :Linux,Open Source

Logran ejecutar Linux desde el Iphone

02 Dec

Escrito por hace 1 año y 9 meses | 1 Comentario

Vía Digg me entero que los chicos de Linux on iPhone han conseguido portar el kernel 2.6 de Linux al iPhone, iPhone 3G y al iPod Touch tratando de lograr que linux sea una alternativa de sistema operativo para el iPhone.

Esto es sin duda es una de las noticias mas alentadoras para la comunidad linuxera que cuenta con un iPhone, aunque el sistema operativo es bastante limitado no soportando varias funcionalidades del iPhone, se espera que en un futuro no muy lejano se pueda ampliar dicho soporte.

Sin embargo hay algunas cosas que sí soporta, como el framebuffer y la conexión del iPhone a un PC por el puerto serial o por USB, Interrupts, MMU, clock.

Tu Necesitas Flash Player 8+ y tener Activo Javascript para poder ver el video.

Descarga

Instrucciones


Categorizado :Gadgets

Etiquetado :iPhone,Linux

Desde el día de ayer 30 de octubre, se ha liberado la nueva versión 8.10 [Intrepid Ibex] de Ubuntu, los que tengan Hardy Heron recibirán un aviso de la nueva versión disponible en su gestor de actualizaciones, con lo cual puedes actualizar tu equipo. Entre la más resaltantes características de esta versión se encuentra el soporte 3G. [Descarga]

« 1 2