Tu calendario de Google en Ubuntu 11.10

Esta entrada la estoy escribiendo porque en las versiones anteriores a Ubuntu 11.10 teníamos como cliente predeterminado de correo a Evolution el cual tenía como parte de sus componentes la gestión de contactos, calendario de actividades y notas.

Como ya te habrás dado cuenta, en la versión 11.10 de Ubuntu el cliente de correo predeterminado ya es Mozilla Thunderbird y resulta que por mas que le busqué no encontré por ningún lado que contenga la gestión del calendario y actividades :( así que buscando un poco encontré que se puede instalar un plugin para que se pueda tener la opción de manejar tu calendario de Google desde Thunderbird.

Primero que nada debemos instalar el plugin y eso lo podemos hacer desde el centro de software de Ubuntu buscando la palabra Thunderbird y luego seleccionando la opción más información como se muestra en la siguiente imagen:


Para que en la pantalla que nos muestra posteriormente seleccionemos de la parte de Añadidos la opción que dice: Extensión de calendario para Thunderbird - soporte para Google Calendar como se muestra en la siguiente imagen:


Con lo anterior, al abrir Thunderbird podrás ver que ya aparece la opción Calendar (desgraciadamente el plugin no está en español) se ve en la siguiente imagen:


Para finalizar, tienes que crear un nuevo calendario y eso lo puedes hacer dando doble click con el botón izquierdo de tu ratón en el área blanca debajo de la palabra Calendar de la barra del lado izquierdo y te aparecerá la siguiente pantalla:


Tienes que seleccionar que tu calendario estará almacenado remotamente dando click en la opción: On the Network y después click sobre Siguiente, con lo que aparecerá la siguiente pantalla en la que deberás seleccionar la opción Google Calendar:



En la parte de Location deberás poner el Link que sacarás de tu configuración de tu calendario desde la página de Google, entras a Calendario -> Configuración y después seleccionas el calendario que quieres sincronizar:


En la pantalla de tu calendario deberás seleccionar uno de los Links XML que dicen ahí y la información que te mostrará en una ventana la copias y la pegas en tu pantalla de Thunderbird.



Con esto podrás tener tu calendario de Google sincronizado en Ubuntu 11.10 :)

En Ubuntu 11.10 instalando impresora compartida desde Windows

Resulta que en las versiones anteriores de Ubuntu 10.10 y 11.04 me fue muy fácil instalar la impresora que tenemos compartida aquí en el área de trabajo, solamente me dirigía al programa para agregar impresoras, le daba click en Agregar y seleccionaba que quería buscar la impresora de red y ponía la IP para buscarla (Imagen de abajo) y la encontraba fácilmente y procedía con los pasos del asistente.



En la nueva versión de Ubuntu 11.10 haciendo los pasos de arriba no se porqué no me encuentra la impresora, cabe mencionar que la red donde se encuentran los equipos es la IP: 192.168.2.XXX

Y yo estoy detrás de un Router que me da IPs del rango 192.168.0.XXX pero si puedo hacer ping a las IPs del rango 192.168.2.XXX

Aquí en el departamento la mayoría tiene Windows y la impresora esta instalada y compartida en un equipo con XP, así que buscando formas de instalar la impresora encontré que si busco la impresora con la opción de hasta abajo que dice: Impresora Windows vía SAMBA y pongo los datos como los de la imagen siguiente:


smb://GRUPO_TRABAJO/ip_equipo_impresora/NOMBRECOMPARTIDO

Si pude conectar con la impresora y con eso proseguir con el asistente de seleccionar la marca y modelo de la impresora como se ve en las siguientes imágenes.



Espero que te sea de utilidad esta información y nos leemos pronto... :)



Instalando Java 6 de Oracle (antes de Sun) cambiando a OpenJDK en Ubuntu 11.10

Aquí algunos pasos para tener instalado Java 6 de Oracle (antes Sun) en cuenta de OpenJDK que viene instalado por default en Ubuntu 11.10.

Primeramente comentar que parte de la información comentada aquí se tomó de WEB UPD8 donde también podemos encontrar cómo instalar de forma manual la versión 7 de Java de Oracle (antes Sun).

Bueno pues manos a la obra: tenemos que agregar el repositorio ppa:ferramroberto/java para después instalar los paquetes de Java que nos servirán para remplazar a OpenJDK, podemos hacerlo desde consola con el siguiente comando:

sudo add-apt-repository ppa:ferramroberto/java

Después, tenemos que actualizar la información de los repositorios con:


sudo apt-get update

Y por último instalar los paquetes con:

sudo apt-get install sun-java6-jdk sun-java6-plugin

O si ya tenemos agregado el repositorio, la instalación de los paquetes también se pueden hacer desde el Centro de Software de Ubuntu como se muestra en la siguiente imagen:


Una vez que ya tenemos instalado el paquete si procedemos a ejecutar desde la terminal:

java -version

Nos daremos cuenta que nos indica que aún estamos utilizando la versión OpenJDK como se muestra en la siguiente figura:


Por lo que tenemos que ejecutar la siguiente instrucción para especificar que queremos utilizar la versión de Java 6 de Oracle:

sudo update-alternatives --config java

Con lo que nos mostrará un menú con las opciones que existen, es ahí donde seleccionamos el cambio, en mi ejemplo seleccioné el número 2:



Una vez efectuado el cambio, si ejecutamos nuevamente la instrucción:

java -version

Nos mostrará que ya estamos ejecutando la nueva selección como se muestra:


Para finalizar tenemos que agregar la variable $JAVA_HOME al PATH para que en cualquier directorio donde nos encontremos podamos compilar los programas con javac, por lo que tenemos que editar el siguiente archivo:

sudo gedit /etc/bash.bashrc

Y agregar al final del archivo las siguientes líneas:

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

Para que la variable $JAVA_HOME se refleje sin tener que reiniciar el equipo tenemos que ejecutar lo siguiente:

source /etc/bash.bashrc

Con eso podemos comprobar que la variable ya cuenta con la información de la ruta donde se encuentran los programas de Java:

echo $JAVA_HOME

Bueno, por hoy es todo y espero que sea de utilidad para que nos iniciemos a programar con Java desde nuestro Ubuntu.

Error antes de terminar de instalar Ubuntu

Resulta que en la última actualización que hice de Ubuntu para pasar de la versión 11.04 a la 11.10 "Oneiric Ocelot" no finalizó correctamente y sólo faltaba el último paso de la instalación por lo que tuve que reiniciar el equipo :(

Al reiniciar se quedaba bloqueado en la pantalla de inicio, al presionar la tecla "ESC"ape y ver los mensajes de la consola vi que los mensajes decían OK todos pero que estaba en espera de algo y no terminaba.

Me propuse reiniciar 3 o 4 veces e igual y antes de reinstalar todo me percate que mandaba un error que decía:
Warning: Fake initctl called, doind nothing.

Por lo que decidí buscar un poco en la red y me encontré con esta buena solución que puso StellionCR en su blog y que ahora describo:

Reiniciar con el CD de instalación en modo Live!, abrimos el navegador de archivos y buscamos nuestra partición del disco duro donde instalamos Ubuntu.

Nos dirigimos a la carpeta / para después entrar al directorio sbin, dentro del directorio buscar el archivo initctl (aparecerán 2) initctl y initctl.REAL lo que hice, basándome en las instrucciones de StellionCR, es:

Renombrar el initctl por initctl.FAKE y renombrar el initctl.REAL por initctl  dejando una copia del initctl.REAL como se ve en la imagen de abajo.



Dese terminar para hacer una copia con otro nombre del archivo sería con el comando:

cp initctl.REAL initctl

Después de éso solo hay que reiniciar y listo! :)

Sólo pensamientos...

Pues sí, esta entrada no tiene que ver con programación ni nada por el estilo. No están para saberlo pero una de mis pasiones ocultas de vez en cuando es escribir (hago como que escribo para cantarlas) y a veces solamente escribo, no creo poner algo completo de lo que tengo porque será la primera vez que me anime a mostrarlo abiertamente, será por falta de confianza?, por temor a la crítica? no sé pero será la primera vez, a lo mejor la edad para mostrar eso ya esta llegando ja!...


DESEÁNDOTE JUNTO A MI (16-06-95)


Desperté deseándote junto a mi.
Desperté queriendo estar frente a ti.
Desperté queriendo ver tus ojos verdes.
Desperté deseando rozar tu piel.
Desperté queriendo besar tus labios.
Y escuchar que tu me quieres también...


EXTRAÑANDO (No recuerdo la fecha)


Hoy que no estas junto a mí
Toco mi guitarra y me pongo a escribir
Esta melodía que hago solo para ti
Para decirte que sin ti no puedo vivir.


No se, porque las cosas pasan sin saber porqué.
Tú me haces falta y no quisiera perderte.
Pero comprendo que nada es para siempre...


Sólo pensamientos (Sin fecha)


El silencio y mis sueños se mezclaron.
Pero al final apareciste tu y tu mirada.
El silencio se comió mis pensamientos,
Y en mis pensamientos te escuche.


Y después de de ello el silencio arrastro mis sueños e
Ilusiones detrás de tu mirada.

(5 de Marzo de 2003)

Nuevamente comienzo,
Es estar solo,
Aunque no todo es totalmente incorrecto,
Esta vez me encontraré.


En la búsqueda de lo incierto,
Nuevamente no lo hallé,
No bastó ni lancha, ni jet,
No seré superman otra vez.

Lo hubiese dado todo,
Si estuvieras decidida,
Yo lo hubiese descifrado,
Si lo hubieras intentado.

Si lo quisieras,
Otra rola cantaría,
No hay problema en intentar,
El problema es el temer.

Bueno, por hoy será todo, creo que puse muchas cosas y a veces eso es demasiado para compartir pero seguiré poniendo lo que tengo a medida que sea posible. Nos seguimos leyendo!

El Che poeta entre poetas!

Leyendo el libro: "CHE XXX VIVO" de Leopoldo Ayala de la Ed. Pablo de la Torriente en la página 55 me encuentro con una gran historia que me gustaría compartir, el título se llama Poeta entre poetas y cuenta la historia de cuando el poeta mexicano José Tiquet conoció al Che y dice así:


- Entonces yo no tenía interés en la política y menos en la ideología, no era el "ideologista" que soy ahora; pero con Ernesto había que hablar de política y de cuestiones ideológicas, sus conversaciones siempre caían en ese campo, aunque comenzáramos platicando sobre poesía. Mi interés era la poesía en sí misma, se lo hacía saber y él me reprochó que yo hablara solamente de la luna, del paisaje, del amor, desentendiéndome de todo lo demás que había en la vida. Me lo dijo con todas sus letras: "Che, ¿y el hombre?, ¿dónde está el hombre en tu poesía?; como poeta no olvides nunca al hombre de tu pueblo, es muy importante que en una obra de arte camine el hombre como en su propia casa, para eso es el arte", me reclamaba Ernesto. "El tenía una visión más amplia de carácter social, una formación sólida y a mi me impresionó muchísimo acabado de conocerlo", cuenta Tiquet y agrega sobre una de las primeras conversaciones suyas con el doctor Ernesto Guevara:

"Ernesto era un hombre muy educado, tierno, aunque no lo aparentara; era un poeta, conocía todas las reglas de la poesía, pero para él había que conocer al hombre profundamente para hacer poesía que valiera la pena."- 

Se los comparto para reflexionar y seguir divulgando las buenas ideas... hasta pronto!

Programando en lenguaje C sin conio.h

Después de un tiempo de no escribir regreso y es para comentar qué podemos hacer cuando estamos programando en C o C++ y no tenemos la biblioteca conio.h, la cuál contiene funciones muy útiles como la de gotoxy ( int x, int y ); que es una función que sirve para posicionar la salida en pantalla de los programas que se ejecutan desde la terminal (Linux) o consola (Windows).

Antes que nada comentar que conio.h es una biblioteca propietaria de la extinta Borland ( ahora Embarcadero Technologies ) por lo que cuando no utilizamos su compilador no vamos a encontrarla y nuestros programas no se podrán compilar, es por ello que buscando un poco en la red encontré estas dos formas de implementar la función gotoxy ( int x, int y ); y así no depender de una biblioteca propietaria.

Veamos el primer ejemplo el cual será ejecutado en Linux y mostrará en pantalla lo siguiente:



El código quedaría de la siguiente forma:

#include 
#include 

void gotoxy ( int x, int y );

int main(int argc, char **argv)
{
 int i;
 system("clear");
 for( i = 1; i <= 5; i++ )
 {
  gotoxy( i, 1 ); printf("*");
  gotoxy( i, 5 ); printf("*");
 }
 for( i = 2; i <= 5; i++ )
 {
  gotoxy( 5, i ); printf("*");
  gotoxy( 1, i ); printf("*");
 }
 return 0;
}

/* Implementación de la función */
void gotoxy ( int x, int y )
{
  printf("%c[%d;%df", 0x1B, y, x);
}

Para la ejecución de ese mismo programa en la consola de Windows la función gotoxy ( int x, int y ); quedaría de la siguiente forma:

void gotoxy ( int x, int y )
{
 COORD coord;
 coord.X=x;
 coord.Y=y;
 SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}

Error al compilar en Android Studio 4.0: CIRCULAR REFERENCE:com.android.tools.r8.a: Invoke-customs are only supported starting with Android O

Resulta que estuviste construyendo tu APP desde Android Studio 4.0 y no te marcó ningún tipo de error de codificación pero al querer compila...