martes, 17 de septiembre de 2013

Instala temas para Empathy en cualquier distro Linux

Saludos amigos.

Después de una semana llena de exámenes finales en la universidad, me encuentro libre , y dispuesto a seguir aportando para esta comunidad, con pequeños manuales que sé les ayudará en algún momento.

En esta oportunidad, les diré como instalar temas para las conversaciones en el gestor de mensajería instantánea Empathy, para cualquier distro Linux.

Primero


Como se supone que ya tienes instalado Empathy, ahora solo te queda descargar los temas que más te gusten.
Candy Bars
Descargar


Candy Bars
Descargar


Segundo


Ahora toca descomprimir los archivos de acuerdo como sea su extensión.

$ tar xzvf archivo.tar.gz $ tar xjvf archivo.tar.bz2

Tercero


Ahora deberán crear dos carpetas, una llamada adium y otra llamada message-styles dentro de la ya creada carpeta adium.

Para esto primero iniciaremos como root en la terminal, para luego crear las carpetas indicadas.

# mkdir /home/cesar/.local/share/adium

# mkdir /home/cesar/.local/share/adium/message-styles


Cuarto


Y por último, nos ubicaremos nuevamente en la carpeta que acabamos de descomprimir, y copiaremos la carpeta que seguido de un punto dice AdiumMessageStyle por ejemplo, tomaremos la carpeta de Ambiance entonces, dentro de esa carpeta existe la carpeta Ambiance.AdiumMessageStyle, esta carpeta la copiaremos en la carpeta que acabamos de crear que fue /home/cesar/.local/share/adium/message-styles


# cp -r Ambiance.AdiumMessageStyle/ /home/cesar/.local/share/adium/message-styles/

Les hago recuerdo que es el mismo procedimiento para cualquier tema que ustedes deseen descargar.

Ahora simplemente reinicia tu Empathy y entra en el menú Edición -> Preferencias y por último Temas y selecciona el que descargaste.

Saludos a todos. Espero haberlos ayudado en algo.

miércoles, 27 de junio de 2012

Java Plugin en Google-Chrome para cualquier distro Linux

Para aquel que instaló cualquier distro de Linux ( Ubuntu, Debian, Archlinux ) y a la vez Google Chrome, se dio con la sorpresa que no podía utilizar applets de Java. descuiden que la instalación de esto, es mucho más fácil de lo que uno puede imaginar.

Primero

Debemos bajar el archivo desde aquí que es la página oficial de Java. Buscamos la sección Linux y seleccionamos el archivo a descargar, utilizaremos el segundo o tercero, los que se llaman Linux o Linux x64, dependiendo de tu arquitectura.

Segundo

Una vez descargado el archivo, que en mi caso se llama jre-7u5-linux-i586.tar.gz, porque elegí la opción de 32 bits ( Linux ) nos dirigimos donde se encuentra el archivo, y así empezaremos con la magia.
  1. Desde consola nos logeamos como root y escribimos, cd para dirigirnos al fichero donde se encuentra el archivo.
    [cesar@macesarr_gentoo]# cd Downloads/
  2. Descomprimimos el archivo con el siguiente comando.
    [cesar@macesarr_gentoo Downloads]# tar xzvf jre-7u5-linux-i586.tar.gz
  3. Crearemos una carpeta con nombre java en el directorio /usr/ y moveremos la carpeta jre1.7.0_05 que es la carpeta producto de la descompresión del paso anterior, a la carpeta java que se acaba de crear.
    [cesar@macesarr_gentoo Downloads]# mkdir /usr/java
    [cesar@macesarr_gentoo Downloads]# mv -r jre1.7.0_05 /usr/java/
  4. Crearemos una carpeta que llamaremos plugins donde se encuentra google-chrome en nuestro Linux
    [cesar@macesarr_gentoo Downloads]# mkdir /opt/google/chrome/plugins/
  5. Y por último ingresamos a la carpeta que acabamos de crear ( plugins ) y enlazaremos los archivos base java para la correcta ejecución de los applets java en nuestro navegador.
    [cesar@macesarr_gentoo Downloads]# cd /opt/google/chrome/plugins/
    [cesar@macesarr_gentoo plugins]# ln -s /usr/java/jre1.7.0_05/plugin/i386/ns7/libjavaplugin_oji.so
    [cesar@macesarr_gentoo plugins]# ln -s /usr/java/jre1.7.0_05/lib/i386/libnpjp2.so
  6. Eso es todo. Ahora tan solo reinicia tu google-chrome y lo verás trabajar sin ningún problema.

    PD: Este procedimiento, lo realicé en Ubuntu, Debian y ahora último en mi ArchLinux


viernes, 6 de mayo de 2011

El código maldito de Template T_T

Maldito código que no fue bien recogido de las lineas del correo masivo del Portal Académico de la San Pablo, ya que lo juntó todo en una sola linea, y se veía todo tal como si fuese un correo de texto plano todo junto, sin espacios ni nada.

El código del Template fue enviado por el profesor Christian Lopez! ya todos conocen su metodología, ya que, cuando se emociona no hay nadie quien lo pare, de tal forma que si uno hace una pregunta estúpida como decir que las clases son dinámicas o que los punteros a Void se pueden indireccionar, nunca falta una amenaza o un comentario del profesor que nos hace soltar una carcajada, las amenazas pueden variar desde, ¿Donde encuentro un palo? ó No hagas que te golpee ó Dime que es una broma, porque sino no respondo! Y sus comentarios pueden ser La brutalidad que acabas de decir, puede ser causa que te falta un poco de azúcar en tu organismo ó El compilador te dirá: ¿Qué piensas hacer!!!. Ok! me desvié un poco del tema, pero era necesario y justo, porque el profesor Christian se podría decir que es uno de los mas poderosos de la facultad de Ingenierías y Computación; Mis respetos porfesor! =).

Volviendo al tema, como ya mencioné, el profesor se emociona, y por su propio brote de adrenalina motivo de la cantidad de código que puede albergar su cabeza, es que puede realizar toda una clase, escribiendo centenas de lineas de código, para que al final, el diga -Ya chicos, les envío el código y ustedes lo documentan para la siguiente clase. El detalle esta vez fue que el código de Template que envió, NO ESTABA BIEN!!!! T_T




La culpa no era del profesor, lo mas probable, la culpa fue de la propia plataforma que cargo el texto para enviarlo por correo electrónico. Lo horrible además que estaba todo junto, es que no copió correctamente el código, porque no había pegado las linea que denominaba la clase genérica, que por lo general es template pero, no se había copiado la parte de class T y en otras secciones, no se había copiado bien la parte del template. Bajo este problema, es que por motivos de compromiso con mi nota de permanente 1 y viendo muy cerca el examen parcial es que tuve que construir yo mismo el código. El profesor dijo: El usar Template, hace que el ejecutable pese mas, pero que el tiempo de ejecución sea mas rápido, pues es hora de comprobarlo ;).

El construirlo no fue tan fácil como pensé, además que Google ya me cantaba las respuestas tuve que leer bastante para entender las diferentes formas de implementación, ya que el usar Template solo trabaja en un solo archivo, es decir, todo en el .h y no enlazarse a un .cpp, es algo sencillo de entender, ya que al construir un Template el compilador, cargará tomando en cuenta la lista genérica, construirá la clase con los tipos de datos asignados. Sabiendo esto, se entendió, el porque ya no se declara un tipo de dato en los constructores o funciones, se coloca el nombre de la clase genérica declarada en el template template .

Finalizado el trabajo de construir el código entenderlo y aplicarlo, procedí a comprobar el peso de los ejecutables. Así que comparé el peso de uno hecho con Clases Abstractas, Punteros a Void, Punteros a Funciones, para el Cast y este último usando Template. El resultado fue tal y como lo dijo el Profesor. De esta forma puedo culminar esto con la satisfacción, que aprendí a usar Template y aprendí a Documentar Código! gracias a las fuentes de programas de Linux =). Adios


jueves, 5 de mayo de 2011

AUCTeX for Emacs!! ;)

Bueno esto es de más conocido, me encanta hablar con el que fue mi profesor de introducción a la programación orientada a objetos Rodrigo Lazo, les soy muy sincero, lo tomo como un modelo a seguir, y justo es que cada vez que converso con él por medio de Gmail (Él estuvo ahí!) es que me doy cuenta que no sé nada, jajaja, justo anoche que le mostré este blog, fue que me hizo un comentario y una pregunta que me sacaron de onda.
El comentario fué: Rodrigo: latex para emacs usa auctex
Y la pregunta fué: Rodrigo: ya sabes de type erasure entonces con tú trabajo?

Ésto, fue una una vez más, una patada a mi infante cerebro de programador newbe, claro está que me quede pensando en eso todo el día, así que apenas llegue a casa, prendí mi poderosa ThinkPad y a investigar acerca del AUCTeX.

No fue muy difícil después de todo, ya que mi querido Google me guió en mi camino hacia la victoria, lo mas sencillo y lógico que se me ocurrió fue entrar a la WebSite oficial de AUCTeX y así no se hizo larga la aventura de poder instalar este paquete en mi Emacs.

Lo primero que hice fue descargar el paquete desde aquí que es la página ya antes mencionada, luego de eso, ya solo es juego de niños, poder ir a la sección Download elegir nuestra fuente de OS, y descargar el .tar.gz.

Entonces como usuario Linux por cultura general sé que si es un paquete comprimido en dicha extensión se sabe que .tar es el formato de archivos usados ampliamente en entornos UNIX, y además de esto, es que de esta forma se distribuyen las fuentes de los códigos. Sabiendo ésto, es que realicé los siguientes pasos:
  • $tar xzvf ......tar.gz
    Lo descomprimí

  • $cd .....
    Entre al directorio

  • $./configure
    Lo configuré

  • $make
    El rico make para compilarlo

Después de esto, es que me quede con la duda si mandarle el &make install por que por lo general eso sirve para que otros usuarios puedan usarlo, pero como yo soy el único que usa mi portátil, no fue necesario ;)

Luego modifique mi .emacs y le añadí unos parámetros de inicialización para el AUCTeX.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ESTAS LINEAS PARA TRABAJAR CON LATEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; INICIALIZACION DE AUCTeX ;;;;

(add-to-list 'load-path "~/auctex-version/")
(add-to-list 'load-path "~/auctex-version/preview/")
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(setq-default TeX-PDF-mode t)


El bloque lo escribí gracias a que leí la documentación del propio AUCTeX =)

Pues así quede trabajando mi propio Emacs con AUCTeX y déjenme decirles que es algo divino. Lo que son los comandos son fáciles de aprender gracias a la propia documentación, y la experiencia de usar Emacs.

Les dejo un pantallaso de lo que es trabajar de esta forma ;) y hasta otra oportunidad. Ah verdad! Gracias profesor Rodrigo Lazo Bye!


martes, 3 de mayo de 2011

Java vs C++ con el rico Polimorfismo

[...] 18:45 [...]Es de muy buena costumbre que el profesor Christian Lopez del Alamo el Chato, deje trabajos de investigación, que en realidad no se acordará de revisar, pero eso sí! soy sincero, me ayudan para ampliar mis conocimientos. Ahora estamos tocando el tema de Polimorfismo nos dejo el trabajo de averiguar como se realiza el polimorfismo en los lenguajes de programación de C++ y Java. Su curso de Objetos y Abstracción de Datos es netamente sobre C++ pero se le da por que tengamos una super visión acerca de todos los lenguajes enfocados hacia el paradigma de la POO ; ).

Linux es mi adoración hace 4 años - ok!! soy un newbe - me mantuve con Gentoo y Arch Linux!! casi un año - prefiero Arch por su Pacman!!! - pero por motivos de fuerza mayor! ( mi internet movil ) es que uso la distro de Ubuntu 10.10 no me quejo, pero déjenme decirles algo: si que es aburrido que todo este al alcance de un click!! y odio que tu Root sea restringido para ciertas acciones! - no importa - =) lo sé LINUX FOR HUMAN!!. Me contento con tener Emacs como editor y Google como guía!

[...] 19:10 [...] Hago saber que todo trabajo para el Jobit siempre será en Latex! y lo apoyo al 100%+1 ; ) me encanta saber que un compilador lo hace todo por mi, lo pone bonito para la presentación y yo solo me dedico a escribir lo que me importa =), el detalle es que antes yo usaba Geany para editar mis .tex ahora haremos la prueba con Emacs como editor de .tex!... pues Ahí vamos!!!

[...] 19:18 [...] Tendré que recopilar todo lo hablado sobre Polimorfismo ( en esencia tengo que trabajar Herencia, Ligaduras Dinámicas, Ligaduras Estáticas, Funciones virtuales, Funciones Virtuales Puras, Clases Abstractas) y plasmarlo en mi main.cpp. Juego de niños =D.
"Me encantó lo que aprendí hace poco con el Emacs, manejar diferentes buffer y así evitar el problema de dividir mi trabajo hasta en tres bloques en mi pantalla. Esto se logra haciendo la combinación C-x-b y escribir el siguiente buffer a trabajar, por ejemplo: yo trabajo en mi main.cpp pero para usar mi shell para compilar escribo C-x-b luego M-x shell y listo, ahora cada vez que quiera usar uno solo tengo que utilizar el C-x-b y escribir el buffer a moverme y si deseo lo autocompleto con TAB =D".

[...] 19:40 [...] Algo que hace que mis amigos me miren extraño es que diga: PORQUE NO ME SALE ERROR!! y es que literalmente necesito equivocarme para entender algo que me sale bien, no es raro pensar así, pero existen personas que prefieren que todo sea color de Rosa pero en el fondo no saben porque todo sale super super! Un claro ejemplo está lo de HERENCIA MULTIPLE!! xD me sale bien!! y no se porque!!

[...] 19:51 [..-] Wikipedia es mi héroe una vez mas ; ) me hizo entender acerca la Herencia Virtual y pues era solo para evitar la ambiguedad con respecto a la herencia, el ejemplo del Murciélago es genial. Por motivos de fuerza mayor (flojera) no lo incluiré en mi trabajo.

[...] 20:00 [...] Hora de trabajar en Java, y mi primera cuestión es que si podré utilizar Emacs para editar lenguaje Java!! vamos a ver!

[...] 20:07 [...] Bueno si puedo era obvio!, pero el detalle es que no tengo el paquete de compilación, pero todo se soluciona con un sudo apt-get install openjdk-6-jdk


[...] 20:20 [...] No compila mi "Hello World" de Java Grrrr! a revisar dependencias, pero en el acto!! ¬¬ lo estúpido del mundo: No llame a mi archivo holamundo.java como mi clase general del archivo... ¬¬
[...] 20:40 [...] Como siempre digo Un programador tiene una actitud camaleonica ante cualquier lenguaje de programación, y pues sí! lo mismo pero diferente sintaxis! xD. Pero el problema ahora es que ni con eso puedo entender como hacer la herencia y por simple consecuencia no se como hacer el polimorfismo en Java! =S

[...] 23:00 [...] Ok! mucho tiempo, pero me distraje con el gimp! jajaja pero regresando al trabajo!, no se como realizar el maldito polimorfismo en Java, y detesto cuando el profesor solo le importa dejar trabajos y mas trabajos pensando que somos unas maquinas, es muy tarde y mañana presento este trabajo, ¿Que hacer? darle 15 minutos mas y dormir!

[...] 23:13 [...] Estoy cansado! y en realidad estoy casi seguro que el profesor no revisará esto, y como nadie hizo el trabajo, nadie hablará para que se acuerde el profesor. Adios! Pero me voy con la satisfacción de haber aprendido algo de Java en el intento de hacer este trabajo.

Bueno es de día ya! y esto en clases lo escribo! NO SE ACORDÓ DEL TRABAJO!!! Hasta otra oportunidad! ;)