Si no arranca eclipse

Junio 11, 2009

Espero que les sirva este post para los que usan eclipse.
Si no arranca su eclipse por que hicieron alguna actualizacion u otro, podrian probar siguiendo estos pasos de NUESTRO AMIGO (slack).

lunes 13 de abril de 2009
Error al arrancar Eclipse
Hola, en algunos casos el sistema operativo se marea con la jvm que ocupa, esto generalmente ocurre cuando hacemos alguna actualización de algún paquete con el gestor o comando alternatives.
Y cuando queremos arrancar eclipse desde el lanzador del escritorio, simplemente no lo abre. y comenzamos con cuestionamientos… jajajaj…, en este caso lo logico es que queramos abrirlo por consola con el comando

slack@zion:programas/eclipse$ ./eclipse
LOG: [0xb7eb66b0] exception thrown while VM is initializing:
LOG: [0xb7eb66b0] NULL: java.lang.Object
LOG: [0xb7eb66b0] Aborting…
Aborted

desplegando el mensaje de error que se ve, lo bueno de esto es que existe una rapida solución.

En la misma consola ejecutamos el siguiente comando para comprobar las jvm disponibles para usar en el sistema,

slack@zion:~/programas/eclipse$ sudo update-alternatives –config java
[sudo] password for slack:

Hay 2 alternativas que proveen `java’.

Selección Alternativa
———————————————–
1 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
*+ 2 /usr/lib/jvm/java-6-cacao/jre/bin/java

Pulse para mantener el valor por omisión [*] o pulse un número de selección: 1
Se utiliza `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java’ para proporcionar `java’.

Luego comprobamos que la opcion seleccinada sea la que tome el sistema como version de uso para java.

slack@zion:~/programas/eclipse$ java -version
java version “1.5.0_16″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)
Java HotSpot(TM) Server VM (build 1.5.0_16-b02, mixed mode)

Con esto debieramos tener solucionado el tema de incompatibilidad de jvm con eclipse, al menos.

Saludos y Suerte !!


Instalar el SimpleTest plugin para Eclipse

Enero 4, 2009

Por si a caso usted quiere hacer pruebas con SimpleTest (un framework para pruebas unitarias en PHP) y tiene Eclipse 3.2 instalado, una manera simple de probarlo es de instalar el plug-in SimpleTest para Eclipse. Este articulo prueba de simplificarle la tarea, y esta basado en la página en Inglés: http://simpletest.org/en/extension_eclipse.html

Tengo entendido que el aporte mayor de SimpleTest en comparación con PHPUnit (o PHPUnit2) es que se puede usar un “navegador virtual” que permite de hacer pruebas directamente con resultados HTML de escripts PHP. Un poco (pero no enteramente) como lo hace ahora Selenium IDE, dentro de Firefox, pero en este caso no necesitamos un navegador, lo que facilita considerablemente las pruebas automatisadas de interfaz.

Primero, se tiene que seguir, dentro de Eclipse, los menus Help > Software Updates… y seleccionar la pestaña Available Software.

Como usted seguro no habrá probado anteriormente de instalarlo, tiene que agregar un site de descarga del plugin. Haz click por el botón Add Site… y entra como URL http://www.simpletest.org/eclipse/ y valide.

Esto brinda el URL http://www.simpletest.org/eclipse/ en la lista a la izquierda. Seleccionelo y se abre, ofreciendo una categoría Uncategorized. Seleccione esta categoría y en particular el Simpletest plug-in que hay a dentro, y haz click por Install…

Después de confirmaciones de licencia (es la licencia Eclipse que se accepta para el plug-in, no para el SimpleTest (que es bajo licencia LGPL), el sistema les pide para reiniciar Eclipse. No se lo que occurre cuando no se reinicia pero tengo entendido que no es recomendable.

Reinicia el sistema y… no aparece nada nuevo! Por supuesto, el SimpleTest plug-in es un plug-in chiquito, y no hace mucho, pero ante todo se tiene que configurar. Para esto, vamos a Window > Preferences > SimpleTest y configuramos los 3 elementos necesarios: Php.exe file (que bajo un sistema Ubuntu será /usr/bin/php si usted ha instalado el paquete php5-cli), php.ini file (que será, bajo el mismo sistema, /etc/php5/cli/php.ini) y Test File Suffix (que será simplemente .php pero podría ser .test.php si todos sus tests están con esta extensión). Los demás parámetros no son necesarios.

Apunte que el SimpleTest plug-in en realidad instala el SimpleTest entero, y lo instala en una carpeta de Eclipse y agrega, en el contexto de Eclipse, esta librería dentro del include path. Esto quiere decir que si pruebo de cargar SimpleTest dentro de mis escripts de test, no va a funcionar (doble declaración). Lo vemos mas allá.

Ahora que tengo configurado mi plug-in, que puedo hacer? Pues no mucho. Lo único que puedo hacer es hacer click derecho por algún script que tengo y decir Run as… > SimpleTest. Y esto lanzará mi escript de test incluyendo la librería SimpleTest por defecto. Lo interesante ahí es que el output de esta prueba aparece directamente en una nueva zona de Eclipse que se dedica a eso.

Por ejemplo, quiero empezar a crear pruebas simples para Dokeos. Donde inicio mi trabajo?

Pues la lógica primera de SimpleTest y PHPUnit incita a tener una carpeta aparte que se llame tests y dentro de cual voy a tener todas mis pruebas, con un fichero (una clase) diferente para cada tipo de prueba. Una clase de pruebas podrá probar muchas cosas, pero se considera que una clase debería tener solo la prueba de una funcionalidad (sea una funcionalidad simple pero importante, o otra mucho más compleja que incluye otras, pero nunca dos pruebas que no tienen nada que ver dentro de una sola clase).

Usando Eclipse, creo una carpeta tests dentro de la cual creo mi primer fichero: dummy.test.php

<?php
//require_once(’simpletest/autorun.php’);

class TestDummy extends UnitTestCase
{
function testDummyValues()
{
$this->assertFalse(false);
$this->assertTrue(false);
}
}
?>

He tomado un ejemplo muy básico aquí, que no tiene nada que ver con Dokeos. Usted se dará cuenta que tengo un require_once comentado en primera línea. Esto es lo que le comentaba más arriba, de que Eclipse ya incluye la librería SimpleTest, por eso no se tiene que incluir más.

Después declaro una clase que extende la clase UnitTestCase (hay otras clases de base que extender, por ejemplo para pruebas navegador) y un método testDummyValues() que va a hacer las pruebas realmente.

Ahora, esto es mi prueba básica. Para ver como se comporta SimpleTest, lo único que me falta es hacer click-derecho por el script y Run as > SimpleTest y… ya tengo mi salida (como ustedes se imaginarán mirando al ejemplo, la primera prueba resulta bien, la segunda no:

Salida de SimpleTest plug-in en Eclipse

Salida de SimpleTest plug-in en Eclipse

Me retorna el número de fallas de mis pruebas, así que el número de errores generadas, y me indica donde ha occurrido este error.

A cambio, si todo funciona, me sale esto (yo he desplegado los detalles pero sino solo indica el nombre del fichero de la prueba):

SimpleTest output on success

SimpleTest output on success

Ya esta para esta vez. Mas allá probablamente explicaré como hacer una prueba de funcionalidad con Dokeos…

Puede seguir la guía simple en Inglés de inicio con SimpleTest aquí, pero se supone que conoce las bases de unit testing con PHP…


Inspeccionar funciones en PHPEclipse

Agosto 5, 2008

Luego de descargar un proyecto PHP desde un repositorio SVN en Eclipse. (Aqui un Howto para descargar Dokeos desde su servidor SVN). Sucede el clásico error de querer inspeccionar includes, funciones, clases en PHP sin éxito. El motivo es que el archivo .project de nuestro proyecto no está asociado con un proyecto PHP según Eclipse.

En otras palabras, se debe modificar el archivo .project agregando el siguiente código:

<buildSpec>
<buildCommand>
<name>net.sourceforge.phpeclipse.parserbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>net.sourceforge.phpeclipse.phpnature</nature>
</natures>

Esto indica a Eclipse que nuestro proyecto es un PHP Project. Voila!

Visto aquí


30 días con Zend Studio

Julio 23, 2008

Cansado de tener problemas con la combinación de Eclipse v3.2, PHPEclipse y Subclipse v1.1
decidí probar la versión de prueba de 30 días del Zend Studio for Eclipse.

Los problemas básicamente de Eclipse 3.2 eran un conflicto entre el PHPEclipse y el Subclipse.
Para solucionar de una manera poco elegante pero práctica y rápida desintalé el Subeclipse y comencé a mandar los commits de Dokeos por consola (trabajo sobre una Ubuntu 8.04)

Pero los problemas no iba a parar, al crear un nuevo proyecto en Eclipse, apareció un error inexplicable y nunca más cargo. Es por eso que opté por probar el Zend Studio.

Aqui mis comentarios:

Lo malo

  1. La función Ctrl-Click para inspeccionar funciones, constantes, includes, etc no funciona.
  2. No existe una lista de las funciones declaradas en un archivo PHP. Hablo sobre la vista “Outline”.
  3. Al igual que en PHPEclipse no existe la selección vertical. Algo MUY importante que se debería incluir en este tipo de IDEs. Por ejemplo, las versiones de Delphi y de Notepad++ lo tienen.
  4. En la vista “PHPExplorer” (donde se muestra la lista de archivos) se observa el número de Commit pero no la fecha ni el usuario que hizo el commit.
  5. 304 Mb la descarga!
  6. ¿Olvide decir que cuesta $399 dólares?
    Según el sitio web: $399 for 1 year subscription to support / $717 for 3 years subscription to support

Lo bueno

  1. PHP Functions: Biblioteca de funciones de PHP, ahorra tiempo en lugar de visitar www.php.net
  2. El SVN SI funciona.
  3. Ningun crash hasta el momento.
  4. Fácil de instalar unos “10 clicks”. No hubo necesidad de instalar otros plugins.
  5. Lee muy bien los .js. En PHPEclipse es necesario instalar otro plugin.
  6. Incluye la funcionalidad “Create NEW SQL connection” un wizard para crear cadenas de conexión, aunque no lo utilicé porque en Dokeos ya existe una clase “Database”.
  7. Y muchos pequeñas cosas que podrían facilitar el desarrollo desde cero (from scratch) aunque en mi caso no fueron usadas debido a que Dokeos ya tiene incluidas clases para manejar la BD, la Seguridad, las Sessiones, etc, etc.

La versión utilizada fue:
Zend Studio for Eclipse Professional Edition Build ID: 20080601

Conclusiones

El Zend Studio es un buen producto, tiene algunas funcionalidades que harán más rápido el proceso de desarrollo, sin embargo, por $399 uno espero algo mucho mejor. Si tan solo el PHPEclipse. Pronto una reseña de Eclipse Ganymede la última versión de Eclipse.

Actualización: Pueden ver este post para poder instalar Eclipse 3.4 Ganymede + PHPEclipse + Subeclipse