Tip: Instalar Java jdk8 en Ubuntu 13.10

No había usado este pequeño tip debido a que hasta ahora no me había visto en la necesidad de usar java. Personalmente no me gusta java, pero a veces es la necesidad es más. Así que gracias al repositorio de webupd8 podemos instalarlo abriendo la terminal y escribiendo:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

¡Saludos!

Actualiza Java para solucionar vulnerabilidad de seguridad

Ya contamos con una actualización crítica en este PPA, el cual originalmente iba a ser lanzada a mediados de febrero pero fue adelantado debido a lo importante que resultaba el solucionar esta falla. Pasen a ver

El 1 de enero de 2013 Java 7 activó una falla de seguridad crítica que permite a personas no deseadas activar código malicioso en nuestros equipos. Oracle publicó un parche de seguridad que corrige parcialmente la falla pero no la elimina. La solución primaria es desinstalar pero si no quieres hacerlo puedes actualizar el parche.

Si te interesa abre la terminal e instala con

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

El instalador hará el resto.

Más información de lo ocurrido acá. Gracias a webupd8 por el dato

[Tip]: Arreglar error de SWT en ejecución de eclipse con Java (Versión Oracle)

A modo de breve introducción Eclipse es un IDE (Entorno de desarrollo integrado) que permite escribir el código fuente de un programa pudiendo ejecutar en él lenguajes como Java y Python, entre sus ventajas se encuentra el resaltado de sintaxis y el detector de errores de sintaxis así como sugerencias para corregirlos entre muchas características mas.

Recientemente ocupé instalar eclipse (y así lo hice), pero tuve un problema a la hora de ejecutarlo lo que me llevo a buscar la solución en varios foros, les dejo la solución que encontré por si le es de utilidad a alguien.

El problema puede suceder si recientemente instalamos la versión Java de Oracle, en caso de existir algún problema nos saldrá la siguiente imagen (con el correspondiente nombre del archivo del error)

Error_eclipse

Como la imagen dice, para saber que ocurrió hay que ir a la ruta que especifica y revisar el log, en mi caso lo que encontré fue un archivo de texto con lo siguiente:

!SESSION 2012-08-20 16:34:33.221 ———————————————–
eclipse.buildId=I20110613-1736

java.version=1.7.0_06
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=es_MX
Command-line arguments: -os linux -ws gtk -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2012-08-20 16:34:34.657
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can’t load library: /home/#usuario#/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can’t load library: /home/#usuario#/.swt/lib/linux/x86_64/libswt-gtk.so
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

Lo anterior viene siendo el error que quiero explicar como solucionar, al examinar el texto pueden confirmarse que utilizo la versión proporcionada por Oracle y también que no se detectan las librerías de SWT. Puede solucionarse el error de dos formas, reubicando las librerías SWT o si se actualizó accidentalmente a la versión de Oracle, volviendo a OpenJDK

Para volver a openJDK

Abrimos una terminal y tecleamos

sudo update-alternatives --config java

Nos aparecerá una lista con números y la ruta de las versiones de java que tenemos instaladas (siendo las mas probables openjdk 6, open jdk 7 y java-oracle). Solo habrá que introducir el número de la ruta que contenga openjdk y presionar la tecla enter. Una vez hecho esto deberíamos poder abrir eclipse normalmente utilizando open jdk.

Para seguir utilizando la versión Java de Oracle

Nos aseguraremos que las librerías estén instaladas
sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java
Luego iremos al directorio /usr/lib/jni/ y copiaremos todo lo que esté dentro de la carpeta a ~/.swt/lib/linux/x86_64/

Como recordatorio, en el último directorio puede verse que la carpeta está oculta, accederemos a ella yendo a la carpeta personal y presionando (Ctrl + H)

Resumen

Cuando instalamos el JDK (Java Development Kit) de Oracle puede suceder que las librerías SWT no se ubiquen donde las busque Eclipse, lo que causará que no podamos abrir eclipse, para poder abrirlo de la forma usual puede establecerse openJDK como opción predeterminada o reubicar las librerías a donde se necesitan. Es una solución simple pero que si necesitas abrir eclipse urgentemente puede evitar perder tiempo y sacarte de una emergencia.

También agrego que el problema no ocurre siempre y depende totalmente desde donde y como se haya instalado Java, si alguien experimenta este fallo puede arreglarlo así, de no experimentarlo… mucho mejor : )

Uno de los lectores nos cuenta su experiencia:

La versión de java que tengo instalada en maquina es la del repositorio de duinsoft — JAVA version 7 actualizacion 5 (compilacion 1.7.0_05-b05)

Gestores de Descargas para GNU/Linux: porque SI EXISTEN (Actualización)

Y bueno amigos míos, he actualizado esta entrada después de mucho tiempo debido a que ya contamos con novedades tanto en Tucan como en Jdownloader. Además actualicé pantallazos asociados. Pasen a ver

Acostumbrarse a esta experiencia nueva de usar un sistema operativo diferente a Windows puede ser más frustrante si no sabes cómo se llaman las alternativas a los programas que siempre usabas antes. Uno de estos casos se aplica a los gestores de descarga, herramientas que permiten pausar, administrar e incluso encolar lo que descargas (sorry por redundar…)

Ayer conversaba con un amigo que se iniciaba en Linux, y manifestaba su enojo por no encontrar gestores de descarga para Linux, y que por eso iba a volver a Wintendo…

Es por esto que decidí escribir esto, para dejar en claro que SI EXISTEN. Y de paso callar una cuantas bocas…

Bueno, revisemos entonces:

Sigue leyendo

Que hacer después de instalar Debian Squeeze:Lo más básico

Hace poco escribí un tutorial para instalar Debian Squeeze y comentaba sobre lo encantado que me encuentro con esta distribución.Hoy compartiré algunos pasos básicos para hacer que nuestro Debian Squeeze  sea mucho más funcional de lo que viene por defecto.

Nota 1: Antes de que alguien sienta que me robé su trabajo dejo claro que esto es tomado de www.esdebian.org/wiki,  la wiki oficial de Debian (http://wiki.debian.org) y otras fuentes de las cuales apliqué lo que se acomodaba a mis necesidades y que por supuesto referenciaré al final de esta entrada.

Nota 2: Recuerdo que mi computador (mi querido cacharrito) es un Pentium 4 a 3.00 GHz con 1GB de RAM, video ATI Xpress 200 (integrada de 64MB) y uso la versión i386 de Debian Squeeze.

Sigue leyendo

Tip: activando Java en Chromium

Resulta que intenté subir imágenes a Facebook por Chromium, pero me pidió instalar Java, en condiciones que ya lo tenía instalado.  La solución es sencilla, lo único que hay que hacer es crear un enlace simbólico a la carpeta de plugins de Java, igual que cuando dejamos los iconos y temas como administrador, ¿se acuerdan?

Así que abre una terminal y escribe: sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/libnpjp2.so /usr/lib/chromium-browser/plugins

Luego podrás revisar en about:plugins si ya está instalado Java:

Debo decir que el único problema que tuve al instalarlo fue que el cargador simple de wordpress dejó de funcionar bien. Pero mientras tenga al cargador Flash, no hay problema XD

¿Qué son los lenguajes dinámicos?

¡Hola, Lectores!

Ustedes pudieron apreciar que yo uso lenguajes como PHP, Python y Ruby. Éstos tienen características especiales, por lo que se les llama “lenguajes dinámicos”. Pero, ¿cuál es la diferencia con un lenguaje estático?, más bien, ¿qué es lo que hace a estos lenguajes dinámicos?

Cada lenguaje de programación tiene sus propias “terminologías”. Vale decir, dependiendo de la manera en que cada lenguaje aborde un problema, crea un idioma para que los desarrolladores se comuniquen. Hay muchos ejemplos, pero no quiero confundirles, así es que les daré sólo uno: los lenguajes interpretados no tienen “tiempo de compilación”, porque el lenguaje no se compila. La idea es que un lenguaje de programación dinámico agregue todas estas características en tiempo de “ejecución”, no en tiempo de “compilación” o de “carga”.

La definición de un lenguaje dinámico es: todo aquel lenguaje que posea características que permitan alterar el curso del lenguaje de manera legítima, a través de la inyección de código o de la ejecución de funcionalidades especiales. Describiré, pues, algunas de las maneras de agregar dinamismo a un lenguaje de programación e intentaré explicarlas con pseudocódigo.

Sigue leyendo

Prueba el prototipo de OpenOffice.org: Renaissance

Hace un tiempo atrás leía en Fayerwayer que Sun estaba probando una nueva interfaz para Openoffice.org, la suite Ofimática que está por defecto en Ubuntu y muchas otras distribuciones basadas en Linux, y que además tiene versiones para Windows y OSX. Esta interfaz recibe el nombre de Renaissance y promete un cambio total a Openoffice.org

La sola idea de tener una nueva interfaz para OO me motivó. Así que decidí bajarlo y probar. Aquí mi impresión:

Sigue leyendo

Programación para Newbies V: Lenguajes, Java y palabras finales

Y continuamos con la tercera y última parte sobre lenguajes de programación.

Java

Duke ThinkingEste lenguaje también de alto nivel desarrollado por James Gosling en Sun Microsystems, apareció paralelamente con Python, a principios de los años 90. Basado en gran parte en la sintaxis de C/C++. Este lenguaje tiene una particularidad que considero interesante. Este debe ser compilado en bytecode (aunque también puede compilarse a código máquina), ¿qué ventaja tiene esto?. Si bien, en teoría, un programa escrito en C podría compilarse (traducirse) con un compilador ya sea de GNU/Linux o Windows, en la práctica vemos que ésto no es así, lamentablemente el código debe ser modificado de manera importante (me gustaría explicarles por qué, pero está fuera de mi conocimiento). La gracia de Java es que el lenguaje es completamente estándar. Bueno, hasta ahora tenemos el mismo problema que con C, lo que pasa es que el bytecode, vendría siendo algo así como una “traducción a medias”, es decir, que no es código máquina, pero está mucho más cerca de serlo. Pero como este es el único lenguaje que el equipo entiende, de alguna forma igual tenemos que arreglarnos de alguna forma para que la traducción/interpretación lo haga. Para logra este fin, el código debe ser interpretado en su ejecución y se utiliza una aplicación especial conocida como Máquina Virtual Java (JVM). Duke PlugDe esta forma, para ejecutar el mismo código de Java, sólo necesito la máquina virtual del sistema operativo correspondiente y voilà. Claramente esto presenta un inconveniente (lo suficientemente grande para que rechace siempre que pueda utilizar Java), el rendimiento, para ejecutar una aplicación necesitamos estar ejecutando la JVM cosa que no consume pocos recursos (aunque diría que con la tecnología actual no debería ser tan importante la diferencia). Por otro lado, presenta una ventaja sumamente importante, la portabilidad, es decir, la posibilidad de desarrollar el programa para distintos sistemas operativos/plataformas.

Sigue leyendo para leer sobre unas últimas palabras sobre los lenguajes…