Cómo instalar el plugin Adobe Flash Builder 4.6 en Eclipse

Cómo instalar el plugin Adobe Flash Builder 4.6 en Eclipse

El IDE Adobe Flash Builder 4.6 (para desarrollar bajo el framework FLEX 4) no deja de ser un Eclipse vitaminado y personalizado para trabajar con ActionScript 3.0 y MXML, por lo que su implementación en el propio IDE Eclipse no debería de ser complicado, ¿verdad? ¡correcto! los chicos de Adobe se han currado un instalable para poder agregar de forma muy sencilla el plugin Flash Builder en Eclipse. Sigue estos pasos para ello:

  1. Descarga e instala en tu máquina Adobe Flash Builder. Recuerda que hasta que no adquieras una licencia (~600$) sólo tendrás 60 días para utilizar la herramienta; si eres estudiante o estás desempleado, puedes conseguir la clave gratis para la versión Standard, no la Premium.
  2. Una ve lo hayas instalado, tienes que ir al directorio UTILITIES dentro del directorio raíz de instalación (c:Archivos de ProgramaAdobeAdobe Flash Builder 4.6Utilities)
  3. Ejecuta el instalable Adobe Flash Builder 4.6 Plug-in Utility.exe
  4. Aparecerá un wizard para la instalación donde deberás indicar el idioma  (todavía no está en castellano) y las rutas de instalación tanto del Flash Builder como del Eclipse. Recuerda que necesitas tener una versión de Eclipse que no sea mayor de la 3.6 (la Helios, las nuevas Indigo o Juno todavía no tienen plugin) y además, tiene que ser la versión para 32bits.

¡Y listo!, ya podrás desarrollar proyectos Flex dentro de Eclipse, compilarlos y generar los builds correspondientes. Recuerda que aunque estés usando el plugin y no el IDE de Adobe, te seguirá requiriendo introducir el serial si todavía estás usando la trial.

Sin Comentarios

Metodologías ágiles de desarrollo software

Scrum, extreme programming y kanban, metodologías ágiles de desarrollo software
Las metodologías ágiles para el desarrollo de software se basan fundamentalmente en cuatro manifiestos: primar al individuo y el equipo antes que el proceso y herramientas; primar el desarrollo de software correcto antes que elaborar documentación; colaboración directa cara a cara con el cliente antes que negociaciones de un contrato y responder a los cambios en vez de seguir un plan marcado. Para proyectos con un alto volumen de cambios y/o incidencias este tipo de metodologías resultan mucho más beneficiosas ya que permiten reaccionar de forma mucho más rápida y eficientemente ante éstos. Además, otro valor a tener en cuenta es que se motiva a los propios miembros del equipo, ya que priman el desarrollo antes que la redacción o lectura de documentación, preparación de reuniones, etc.

Las metodologías ágiles más conocidas son XP (Extreme Programming), SCRUM y KANBAN. El manual que os adjuntamos se centra en las dos últimas, sus diferencias y cómo pueden combinarse, porque como dicen en él, no debemos trabajar para la metodología, si no que ésta debe trabajar para nosotros (y debemos hacer tantos cambios o adaptaciones como consideremos). Principalmente ambas metodologías difieren en la unidad que mide el progreso o WIP (work in progress), mientras que SCRUM se basa en iteraciones de tiempo (1 semana, 2 semanas, etc), KANBAN lo mide por flujos o estados de trabajo (recibido, en desarrollo, en implantación, etc. Asignando a cada estado un número máximo de WIP simultáneos). Si os interesa conocer en mayor profundidad este tipo metodologías de desarrollo ágil, os recomiendo leer este manual.

1 Comentario

Dart, ¿nuevo lenguaje de programación de Google?

Dart, ¿nuevo lenguaje de programación de Google?

Recientemente se ha comenzado a hablar en la red de Dart, un supuesto nuevo lenguage de programación diseñado y desarrollado por Google y que en principio, será presentado el mes que viene en un congreso de desarrolladores en Dinamarca. Según se comenta, sería un nuevo lenguage de programación estructurada orientado al entorno web (structured web programming). Cuál va a ser su sintaxis, cómo se va a implementar, cómo se va a compilar, o quizá lo más importante, para qué sirve o que diferencias va a tener respecto al enorme elenco de lenguajes que actualmente dominan el sector, serán las preguntas que en unas semanas revelará Google, porque hasta ahora, son todo conjeturas.

Por lo que se sabe, hace unos días Google ha reservado varios dominios con la palabra DART. Parte del equipo que está diseñando el lenguaje de programación Dart son Gilad Bracha, que ha trabajado para Sun Microsystems y es uno de los autores de JAVA, y Lars Back, que ha trabajado recientemente en el nuevo motor V8 de Javascript para el navegador Chrome de Google. Ambos han trabajado en Smalltalk, un lenguaje de programación que comenzó en la década de los 70 y que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales, es decir, se puede considerar que un Smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envío de mensajes (gracias Wikipedia).

Diversas fuentes afirman que el nuevo lenguaje de Google Dart podría ser un lenguage de programación ejecutado del lado del cliente (del navegador), similar a Javascript o Phyton. Por otro lado, hay quien comenta que debido a la última tendencia de empresas privadas que adquieren tecnologías de desarrollo open-source y las privatizan, convirtiendo sus versiones profesionales en enormes sacos de dinero (en detrimendo de las empresas que los utilizan), Google no querría depender de Java, que podría seguir estos pasos al estar actualmente en manos de Oracle. De esta forma, la solución sería crear un nuevo lenguaje de programación similar, pero del que no temer que en un futuro suponga un desembolso importante de dólares en licencias. Dart, con uno de los cerebros de JAVA a la cabeza, podría convertirse en esta baza de Google, ¿maniobra inteligente? u ¿otra forma de controlar el mundo el desarrollo software?. Ésta opción tendría más sentido, ya que Smalltalk es un lenguaje POO, y como comentamos, dos de sus autores estarían trabajando ahora en Dart. Aunque muchos se preguntarán si es buena idea intentar introducir un nuevo lenguaje de programación en el ecosistema de desarrollo actual, donde hay fuertes competidores con miles de programadores detrás, deberían preguntarse ¿a qué va a dar respuesta Dart? ¿sólo es un competidor para JAVA? ¿qué nos va a ofrecer? ¿será el nuevo lenguaje que permita, agilice o mejore el desarrollo de aplicaciones web para las búsquedas semánticas? o ¿simplemente sea un nuevo framework para los programadores de Google?.

Aunque Google ya lo intentó con Go, un lenguaje de programación estructurado similar a C, y que ha quedado reducido a un pequeño número de programadores, quizás ésta sea la apuesta definitiva por meter la cabeza (o todo el cuerpo) en otro sector que si bien domina, no lleva su propio sello: los lenguajes de programación  (y con ésto estar un poquito más cerca de controlar absolutamente todo de todos).

2 Comentarios

Error MySQL: LOCK TABLES WRITE al configurar Joomla 1.6

Cómo solucionar el error de MySQL LOCK TABLES WRITE de Joomla 1.6 al intentar configurar categorías, secciones o artículos del CMS.

Con el nuevo plan de actualizaciones el equipo de Joomla se ha comprometido a liberar una nueva versión del CMS cada semestre. Este artículo lo voy a escribir utilizando la versión 1.6, aunque desde hace unos pocos días se ha liberado la versión 1.7. Es muy probable que el error que voy a comentar pueda aparecer tanto en la 1.6, como en la 1.7 y en futuras versiones, ya que es un error sobre la BBDD, no del software de Joomla.

Una vez hemos instalado Joomla, configurado el servidor de BBDD y eliminado la carpeta de Installation podemos empezar a meter contenido en nuestra web, organizarlo por categorías y secciones, instalar componentes y módulos, modificar el theme, etc. La mayoría de estas tareas necesitan hacer operaciones con la base de datos, normalmente añadir objetos nuevos, añadir columnas, insertar registros, borrarlos, etc. En mi caso, a la hora de intentar crear una nueva categoría el sistema me arrojaba el siguiente error:

Save failed with the following error: Access denied for user ‘u_user’@’%’ to database ‘base_de_datos’ SQL=LOCK TABLES `jos_categories` WRITE

El error es fácil de detectar, hay problemas de permisos para el usuario u_user que nos impiden realizar la transacción requerida. En primera instancia tenemos que revisar los GRANTS que tiene el usuario ¿puede borrar, insertar y modificar?. Por si acaso, ejecutamos la siguiente query:

GRANT select, update, insert ON base_de_datos.* to u_user@servidor;

Si el error persiste, entonces la solución definitiva será ejecutar la siguiente query:

GRANT lock tables ON base_de_datos.* to u_user@servidor;

O bien:

UNLOCK TABLES;

El comando LOCK en MySQL permite bloquear una tabla con permisos de sólo lectura. Si a la sentencia le añadimos al final un WRITE, dejándola así, LOCK TABLES tabla WRITE; , estaremos otorgando al usuario que la ha bloqueado el permiso para leer y escribir sobre ella, impidiéndoselo al resto de usuarios. Para eliminar cualquier bloqueo de tablas se debe utilizar el comando UNLOCK TABLES;.

El GRANT LOCK permite a un usuario acceder a las tablas bloqueadas indicadas en la sentencia, siempre y cuando el usuario también tenga el permiso de lectura SELECT sobre éstas, por eso, al ejecutar esta query en el error mencionado de Joomla, lo que estaremos permitiendo es la ejecución de cualquier DML sobre la tabla jos_categories al usuario u_user. Para más información sobre el comando LOCK TABLES  de MySQL puedes ver la documentación oficial.

Sin Comentarios

Cómo configurar un proyecto en Symfony con Netbeans 6.9

Estos días estoy trasteando con Symfony, uno de los frameworks de PHP con más éxito en la actualidad. Detrás de Symfony hay una comunidad muy activa que proporciona muchísima documentación sobre cómo utilizarlo, incluso tenemos a nuestra disposición el manual oficial traducido al castellano. Otra de las ventajas que ofrece Symfony es que ha sido probado y testado por muchos de sus usuarios, por lo que han podido resolver gran cantidad de errores de código.

Symfony se basa en el patrón MVC (Modelo Vista Controlador). La estructura lógica de nuestros proyectos se divide en Aplicaciones > Clases > Módulos, donde la Aplicación seria nuestro proyecto, las clases los tipos de funcionalidades de las que consta nuestra aplicación (gestión de usuarios, gestión de noticias, gestión de comentarios, etc.) y los módulos, que es donde se detalla cómo hacer cada funcionalidad de la clase a la que están asignados (alta, borrado y edición de usuarios, etc.).

Como cualquier framework, al principio cuesta conocer la sintaxis y la metodología para programar las operaciones, pero como todo es cuestión de práctica y experiencia, poco a poco se van adquiriendo los conocimientos suficientes como para poder realizar nuestros proyectos con soltura y lo más importante: con rapidez.

Si has decidido utilizar Symfony para tu proyecto web, habrás llegado a otra cuestión ¿qué programa o IDE utilizo?. Yo he elegido NetBeans 6.9 (la última versión hasta la fecha). NetBeans, además de ser opensource y totalmente gratuito, en su última versión nos ofrece un asistente para crear un proyecto PHP utilizando el Symfony e incluso tenemos a nuestra disposición una consola UNIX para configurarlo.

Configurar proyecto Symfony en NetBeans 6.9

  1. En primer lugar debemos tener un LAMP instalado en nuestro equipo.Yo utilizo XAMPP en Windows y MAMP en MAC OS X.
  2. Descargamos la última versión estable de Symfony desde su web.
  3. Descomprimimos el fichero descargado en el directorio de nuestra web. Debería quedar algo así.

    C:\dev\MiProyecto\symfony-1.4.6

  4. Abrimos NetBeans y creamos un nuevo proyecto PHP. Seguimos todos los pasos hasta el último, PHP Frameworks, donde seleccionaremos Symfony. Al seleccionarlo nos aparecerán varias opciones de configuración. Tendremos que pulsar sobre Options, a la derecha de la ventana.
  5. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  6. Se nos abrirá el panel de configuración de PHP. En la pestaña de PHP indicaremos la ruta donde se encuentra el ejecutable de PHP del LAMP que hayamos instalado:

    C:\Archivos de programa\Xampp\xampp\php\php.exe

    Además, tendremos que indicar la ruta de instalación de Symfony pulsando el botón Add Folder, que será la carpeta que hemos descomprimido en el directorio de nuestro proyecto

    C:\dev\MiProyecto\symfony-1.4.6

  7. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  8. En la pestaña Symfony tendremos que indicar la ruta del fichero binario del framework que se encuentra en:

    C:\dev\MiProyecto\symfony-1.4.6\data\bin\symfony

  9. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  10. Le damos a Aceptar y antes de pulsarle en Terminar seleccionamos el checkbox de backend.
  11. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  12. Ya tendremos configurado e instalado nuestro proyecto de Symfony en NetBeans.
24 Comentarios

Texto con sombra en tu web con CSS: text-shadow

Otra de las propiedades que implementa CSS3 es text-shadow, gracias a la cual podremos aplicar un efecto de sombra a cualquier texto. Esta propiedad, que se propuso para las CSS2, no ha sido incorporada hasta ahora. La sombra del texto podrá ser difuminada (como el drop-shadow de Photoshop) o nítida, como si hubiésemos duplicado el texto y el que está detrás, un poco desplazado, sería la sombra.

Además de un bonito efecto visual, esta propiedad nos permite incluir más texto en la página web, evitando así tener que recurrir a Photoshop para editar las imágenes necesarias. Con esto logramos incluir más texto en la página y así disponer de más lugares donde incluir keywords para mejorar el posicionamiento web.

El problema de esta propiedad es que algunos navegadores no la soportan. Sólamente las últimas versiones son capaces de reconocerla. Sin embargo, existen varias alternativas cross-browsing para simular el text-shadow en navegadores antiguos. La propiedad text-shadow es soportada por Firefox 3.5+, Chrome, Internet Explorer 7+, Opera 9.5 y Safari 3+.

La sintaxis de esta propiedad es la siguiente:

text-shadow: color ejeX ejeY RadioSombra;

Ejemplo:

p.shadow {
color: #333333;
text-shadow: #1486D6 1px 1px 2px;
}

Prueba de texto con fondo difuminado

Podemos poner varias sombras a un mismo texto separadas por comas. En Firefox 3.5+ se pueden poner infinidad de ellas, en Opera están limitadas y en Safari sólo se puede poner una.

p.shadow {
color: #333333;
text-shadow: #1486D6 3px 3px 15px, red -3px -3px 15px;
}

Prueba de texto con fondo difuminado con dos colores

La alternativa para Internet Explorer 7+ no ofrece el mismo efecto, pero es lo único que hay por el momento. Desde mi punto de vista, lo mejor es no utilizar este efecto en IE, simplemente ponemos el texto en negrita u otro color.

p.shadow {
display:block;
with: 100%;
filter: dropshadow(color=#FFFFFF,offX=1,offY=1);
}

Prueba de texto con fondo difuminado sólo para Internet Explorer 7+

Texto con sombra en tu web con CSS: text-shadow
2 Comentarios