Gustavo's blog

Autogenera tu lista de repositorios bajo Ubuntu y Debian rápidamente (/etc/apt/sources.list)

Si eres de los usuarios que cambia constantemente su sistema operativo, o simplemente haz instalado recientemente una distribución ubuntu y no quieres perder el tiempo buscando los repositorios de software más adecuados para (quieres que sòlo funcione ya), entonces este post es para ti. Como sabemos ya los usuarios de ubuntu el tema de obtener los repositorios màs adecuados normalmente nos toma un tiempo mportante dentro de nuestra configuraciòn habitual, los 4 grupos principales de repositorios bases de ubuntu(main, restricted, universe y multiverse) pueden ser activados sin mayores problemas pero siempre hay software adicional que será necesario agregar  una forma fácil y rápida es autogenerar el fichero de repositorios utilizando la siguiente web:  UBUNTU: http://repogen.simplylinux.ch/  , DEBIAN: http://debgen.simplylinux.ch/, luego descargamos el fichero que genera y lo guardamos en /etc/apt/sources.list y pues luego desde terminal "apt-get update" y ya está a instalar software se ha dicho :D.


 

pdta: los servidores no serán totalmente óptimos pero si funcionales.

OnePoint Project una alternativa libre para la gestión de proyectos, el reemplazante de Gantt Project

En la asignatura de gestión de proyectos  que curso en la universidad estamos modificando parte del famoso programa de gestión de proyectos "Gantt Proyect"  ya llevo bastantes horas decrifrando de que va el desarrollo de este software y la verdad es que me deprimió un poco el ver el estado del projecto en si.

Gantt Project si bien es uno de  los software de gestión de projectos bajo licencia libre más conocido nunca me gustó personalmente, prefería OpenProj que tiene un aspecto mucho más simple y limpio. Pero el detalle que tienen ambos software es que ambos estan quedando obsoletos o bien su desarrollo de plano està frenado, el caso cercano es ahora Gantt Proyect que luego de buscar por mil partes por más información para realizar sobre el modificaciones he deducido tras  un correo de uno de sus propios desarrolladores el estado actual del proyecto (está frenado). He comprobado esto posteriormente en el sitio http://www.ohloh.net un sitio en el cual pueden verse estadísticas en base a sourceforge del proyecto y el panorama es decepcionante más de cerca de 2 años sin actualizaciones importantes, En el mismo sitio leo de parte de un coolaborador la recomendación de migrar hacia OnePoint Project que es justamente lo que pretendo mostrar en este post. 

OnePoint Project es originalmente un software comercial para manejo de proyectos, pero tiene una versión libre bajo licencia apache y otras, disponible libremente aqui: http://sourceforge.net/projects/opproject , la verdad de las cosas es que la versión libre es más que suficiente para proyectos simples y se nota bastante la superioridad frente a otras soluciones para la getión de proyectos de licencia libre. Las principales ventasjas que he visualizado en una primera mirada a este projecto son:

  1. Compatible con microsoft project
  2. Versión para escritorio y servidor
  3. Múltiples bases de datos
  4. Desarrollo activo
  5. Versionado
  6. Manejo de objetivos
  7. Monitoreo, Control y Reportes.
  8. Multiplataforma

El modelo de negocio de la empresa que respalda el desarrollo de la versión libre es además bastante escalable como puede leerse en el FAQ del sitio comercial. OnePoint Project es sin duda una buena opción a considerar al momento de realizar desarrollos sobre software de planificación libres o simplemente para un uso gratuito de una herramienta similar a microsoft project con similares o quizás mejores características.

The Horizont Report 2010 : Las tecnologías que se desarrollarán en plazos de 1 a 5 años (2010-2015)

¿A quien no le gustaría tener una bola de cristal para ver el futuro?, que daríamos por ser el inventor de youtube, google u otras tantas ideas revolucionarias desarrolladas en el momento precesito y que generaron incalculables sumas de dinero. Es cierto que el futuro de la informática es incierto, es complejo preever un futuro sin dar lugar a equivocaciones, sin embargo un grupo de experto trata de dar caza a un pequeño de tecologías que han determinado serán cruciales durate un próximo periodo de tiempo, se trata de un informe creado por expertos, se trata del reporte horizonte.

Este interesante documento muestra las  tecnologìas que se desarrollaràn dentro de los pròximos  5 años según un grupo de expertos y es titulado "The horizont Report". Ayer llegó este  libro a mis manos en forma digital, la verdad no lo conocía, fué lanzado hace  un par de semanas atrás solamete , este reporte  muestra  6 uevas tecnologías que se desarrollarán y sobre las  cuales convendría invertir en un plazo de 1 a 5 años, estas tecnologías son:

    * Un año o menos: Computación móvil, Contenidos abiertos.
    * Dos o tres años: Libros electrónicos, Realidad aumentada simple.
    * Cuatro o cinco años: Computación basada en gestos, Análisis visual de datos.

Como lo describe su nombre, con este infome puedes hechar una mirada al horizonte y lo que vendrá en temas de tecnología, por cierto, bastante interesante. Adjunto la versión original en inglés y una traducción al español.

 

Mejora la usabilidad de tus formularios en el campo input text

El tema de la usabilidad es un tema crucial para quienes nos dedicamos al desarrollo web, determina muchas cosas; que el usuario use el servicio, que lo recomiende, que le agrade usarlo étc. El otro dìa visitando la web de jamendo.com (sitio para escuchar música libre) estube analizando varias cosas que me llamaron la atención entre ellas bastantes conceptos interesantes que han inplementado sobre la usabilidad del sitio, de hecho me sorprendió y estoy seguro que el desarrollador de ese sitio conoce mejor que yo  la importancia de la usabilidad hasta en los mínimos detalles, por eso he querido dedicarle estas lineas y si es que me lee por ahi mi mensaje seria "eres seco" jjeje.

Ahora bien como me encantó tanto el concepto de varias cosas las anoté por ahi en mi super agenda para ver si de a poco las voy implementando en mis próximos desarrollos, analicé tambien las lienas de javascript y css tratando de hacer ingeniería inversa pero fué imposible, el código esta ofuscado y cuando logre descubrir las funciones que estaban tras pequeños detalles me di cuenta que se implementaron con javascript solamente "a poto pelado" y carecen de bastante estilod e programación, al leer tanto desastre he pensado que la implementación de dichos conceptos basandome en jquery podría simplificarse bastante y he aqui el primer resultado un concepto  de usabilidad sobre los campos input interesante simple  para el usuario final y simple para el desarrollador basado en jquery.

Típicamente un campo input se ve asi:

 

esa implemntación es más que simple:

<input type="text" value="">

Añadiendole un poco de estilo al campo podríamos lograr cambiar el estilo de la linea, el fondo y el color de fondo al hacer focus sobre el mismo, y hasta ahi llegan los consejos de usabilidad en este campo que puedas encontrar en google. Ahora conun poco de esfuerzo podemos transformar todos nuestros campos input  para agregarles además del color y el estilo de lineas un indicador del uso del campo. Primeros definamos el estilo css:

    <style type="text/css">
    .form .form-txt{
        border: 2px solid #dadada;
        background-color: #f3f3f3;
        color:#2a2a2a;
        font-family: Helvetica, Arial, Sans-serif;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px;   
    }
    .form .form-txt:hover{
        border-color:#235485;
    }
    .form .form-txt:focus{
        border: 2px solid #8cc63f;
        background-color: #FFFFFF;
        color:#235485;
   
    }
   
    </style>

Podemos ver que el color de fondo cambia al hacer o no click en conjunto con el color de la linea y el efecto se vería así:

Con esto le indicamos al usuario donde esta parado y que ha habilitado el campo, sin embargo no le hemos indicado que puede escribir sobre el para eso agregaemos la especificación de el css que indique la escritura:

 

    .form .input_escribiendo { /* para aplicarlo a los elementos input type="text"*/
    padding-right: 20px;
    background-image: url("lapiz.png");
    background-repeat: no-repeat;
    background-position: right center;
    min-height:16px; /*altura imagen*/
    }   

Ahora lo usaremos desde un javascript cambiando a dicho estilo solo cuando el input este en focus,  algo muy simple si usas jquery como framework para manejar los elementos dom:

<script type="text/javascript">
	$(function(){
		$('input[type="text"]').focus(function() {
			$(this).css("width",$(this).width()-20);
			$(this).toggleClass("input_escribiendo");
		
			if (this.value == this.defaultValue){ 
				this.value = '';
			}
			if(this.value != this.defaultValue){
				this.select();
			}
		});
		
		$('input[type="text"]').blur(function() {
			
			$(this).toggleClass("input_escribiendo");
			$(this).css("width",$(this).width()+20);
			$(this).val($(this).val());/*fix para re-reenderizar el valor por desface en ancho*/		
			if ($.trim(this.value) == ''){
				this.value = (this.defaultValue ? this.defaultValue : '');
			}
		});
	});
	</script>

 El truco es eluso de la función "toggleClass" agregando o quitando el estilo según sea el focus, puedes observar también un pequeño truco sobre el ancho del campo que he realizado, se que esto quita un poco de estilo de programación pero ruego que si alguien encuentra una forma más estética de hacerlo la postee en un futuro quiza lo mejore pero como diría por ahi alguien "lo mejor es enemigo de lo bueno" por eso lo deje como estaba no mas.

$(this).toggleClass("input_escribiendo");

finalmente se verá así:

 

El resultado final puedes verlo acá (adjunto el ejemplo bajo licencia gpl v3):

VER EJEMPLO ONLINE

 

Solución Ubuntu 10.04 problema apache descagra php , usermod

Siempre es bueno documentar,  si ya te haz dado cuenta de este problema que trae la última versión  de ubuntu (ubuntu 10.04) y te haz googleado la solución y no la haz encontrado os dejo aqui el porblema que ocurre.

El problema

AL habilitar usermod bajo apache al intentar acceder a los ficheros php de la forma http://localhost/~knx/fichero.php en lugar de que apache intereprete el fichero te lanza una descarga, sin embargo al interpretar ficheros php que estan bajo /var/www de la forma http://localhost/fichero.php estos son interpretados de forma correcta.

La solución:

Comentar las lineas que se muestran EN NEGRITA

root@fenix2:/etc/apache2# sudo nano /etc/apache2/mods-available/php5.conf
 

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
   # <IfModule mod_userdir.c>
   #     <Directory /home/*/public_html>
   #         php_admin_value engine Off
   #     </Directory>
   # </IfModule>

</IfModule>

root@fenix2:/etc/apache2# service apache2 restart

Explicación :

Si sabes inglés habrás lanzado una carcajada     To re-enable php in user directories comment the following lines (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it prevents .htaccess files from disabling it. Para volver a habilitar php en directorios de usuario comentar las siguientes líneas (de <IfModule ...> a> </ IfModule.) .... A mi no me preguntes porque .. salu2.

 

EL bonus track:

El problema:

Por alguna razón php bajo ubuntu 10.04 te ha lanzado un error asociado al caracter de comentario en agunos archivos (cambio de estándar)

knx@fenix2:~/public_html/psico$ ./symfony -V
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imap.ini on line 1 in Unknown on line 0
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
symfony version 1.4.5 (/home/knx/public_html/Symfony/symfony-1.4.5/lib)
 

Solución: (aplica para otros ficheros)

sudo perl -p -i -e 's/#/;/g' /etc/php5/cli/conf.d/imagick.ini
sudo perl -p -i -e 's/#/;/g' /etc/php5/cli/conf.d/imap.ini
sudo perl -p -i -e 's/#/;/g' /etc/php5/cli/conf.d/mcrypt.ini

Explicación:

A mi no me preguntes (cambio de estándar)
 

Beepers v/s Celulares v/s Correo Electrónico, y de como odiar a un celular

  Pipi!, pipi!, pipi!, ta!ta!ta!ta!ta!, oh no pero si he dormido sólo unas horas basta ya !,  esperas un momento luego vuelves a despertar miras el reloj y ya esta, atrasado y corriendo a la universidad otra vez... Así comienza tu día, el celular te persigue desde el primer minuto amenazando c con un sonido escalofriante, el sonido de un día más de estrés!, sip, lo twittié hace unos minutos y he pensado que los 140 caracteres no son suficientes para descargarme contra el. Hoy estoy feliz , si estoy feliz porque mi celular ya no recibe llamadas, ni las hace, aunque es difícil que las haga sino le he cargado minutos y he sacado la bateria para no recbir llamadas :), el micrófono dejó de funcionar de un día para otro, cosa que apenaría  a cualquier mortal a mi ha dibujado una sonrisa gigante :) al fin!! al fin puedo alejarme de esa máquina.

 

   Tiempo atrás cuando la comunicación aún era escasa algunos especimenes chilenos lucían hermosos sus famosos "turrones" o también llamados ladrillos, aquellos primeros celulares que más parecían un radio que un celular, por aquellas épocas aún existía el famoso y muy olvidado Beeper o simplemente "Biper", si olvidado una simple búsqueda en google te dará cuenta de como este aparato pasó al olvido colectivo luego de ser reemplazado por la máquina infernal llama "celular". Pero, que eran los Beepers exactamente?, tambien llamados "localizador personal", "mesáfono" o en gringolandia "Pager"   era un aparatillo similar a un celular pero al cual sólo podías enviar mensajes de texto, o el número al cual querías que el receptor te respondiera. Hoy por hoy los Beepers han pasado al olvido, almenos en Chile su reemplazante a mi juicio no han sido siquiera los celulares sino el correo electrónico, quiza sino me conoces mucho ya te haz preguntado pero vamos este tipo porque odia tanto los celulares !, te dare un buen par de razones y el porque otros medios de comunicación actuales son aún mejores y menos estresantes.

Un Beeper te daba un tiempo para pensar, un correo electrónico hoy en día te da incluso un tiempo mayor para pensar, puedes preguntarle a tu mismo interno si hacer tal o cual cosa y tomar una decisión en un tiempo que te acomode, puedes incluso olviadr por un fin de semana completo que tienes un correo que revizar y volver un Lunes a leer que no haz hecho tal o cual cosa que supuestamente era urgente, en definitiva te da un tiempo para darte un tiempo. A diferencia de eso un celular te deja muy pero muy poco tiempo, si te han llamado desde un teléfono público te da entre 15 segundos a 10 segundos para  pensar tomadno en cuenta los 15 segundos que haz gastado en saludar, poco tiempo decisiones apuradas? , no va conmigo  por lo demás un correo electrónico no te despierta por la mañana .. Por eso vivan los Beepers. o aún mejor mueran todo tipo de tecnología estresante, quizá por eso he dicho desde ya mucho tiempo que quiero trabajar sobre un barco jaja mis amigos se rien de eso pero vaya que sería genial, un barco, una guitarra, una mujer , Internet satelital y muy tiempo para relajarme :).  Declaro que .. odio los celulares, de hecho he pensado en dejar definitivamente de usarlos y no es por su software como  lo haría Stallman :D jejej, lo cierto es que el correo electrónico es mucho mejor que un celular , por eso el lema de hoy es Tira tu celular ya !!!,a

Generador de grupos de dos personas, ejemplo de uso de gráficas wxwindows en Python

El siguiente es un programa que hice hace muuchos años, de hecho hace exactamete 4 años atrás. Este software lo hice para aprender en aquella época a usar la librería gráfica wx widget en python y desde allí hacer operaciones finalmente tome este programa y lo exporte para que fuera un ejecutable en ms windows, funcionó bien.  La ventaja que tiene el uso de la librería gráfica wx widget en Python  es que al ejecutar el programa ya sea bajo GNU/Linux o Microsoft windows este se ve igual. Acá les dejo el programita y el código fuente para quien quiera jugar un poco y ver como hacer una aplicación gráfica con Python y multiplataforma con un ejecutable nativo para windows. salu2.