Archivos en la categoría Desarrollo web

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

Descarga manual de JAVA en pdf de JSF 1.0 y JSF 2.0 con librerías MyFaces Tomahawk y IceFaces

Descarga manual de JAVA en pdf de JSF 1.0 y JSF 2.0 con librerías MyFaces Tomahawk y IceFaces

JSF (JavaServer Faces) es un framework para JAVA J2EE (entorno web) que al igual que otros team mates como Struts, su utilidad es agilizar el desarrollo de interfaces de usuario y páginas web avanzadas. JSF plantea la creación de una página web desde un punto de vista similar al de JAVA J2SE con APIs como SWING ó AWT (para desarrollar aplicaciones de escritorio), es decir, construye las páginas con contenedores, paneles y componentes y controla la interacción del usuario con el servidor a través de eventos.

Una de las ventajas de utilizar este framework es que no es propietario, por lo que disponemos de varias implementaciones distintas en el mercado para utilizar la que más nos convenga: o la de JSF Reference Implementation (Sun Microsystems) o MyFaces (Apache). Por cierto, ambas son gratuitas.

La primera versión se lanzó en el 2004 y desde el 2009 venimos disfrutando de JSF 2.0, una nueva versión muy mejorada y que agiliza aún más el desarrollo web (uso de anotaciones, mejora en la implementación de llamadas con AJAX, uso de Javascript desde las clases de validación, sustitución de XHTML en vez de JSP, etc.).

Además, también encontramos en la red diversas librerías de componentes o extensiones para JSF, tanto la la primera versión como para la última: MyFaces Tomahawk, ICEfaces 1.0 y 2.0, RichFaces, PrimeFaces, OpenFaces, jQuery4jsf, etc.  Estas librerías, similares al DevExpress de .NET pero gratis, nos permiten construir formularios e interfaces de usuario mucho más avanzadas: carga de ficheros, pestañas, menús, paginación de resultados, tabla de resultados con cabeceras dinámicas y ordenables, calendarios, árbol de directorios, etc.

A continuación os enlazo varios manuales de JAVA JSF 1.0 y JSF 2.0 y otros de las librerías MyFaces y ICEfaces 2.0. Algunos son un manual de java en pdf en castellano, otros tutoriales o colecciones de ejemplos y también incluyo varias hojas de referencia rápida (cheat sheet).

NOTA: acabo de ver que ya han liberado ICEfaces 3.0 para JSF 2.1, en cuanto encuentre un manual en condiciones, lo postearé aquí.




Manuales JAVA JSF 1.0

Manuales JAVA JSF 2.0

Librerías de componentes o extensiones para JSF 1.0 y JSF 2.0

 

JSF 1.0 MyFaces Tomahawk

JSF 2.0 ICEFACES 2.0

Sin Comentarios

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

Mejora la usabilidad y accesibilidad de los formularios en HTML 4.0

Acabo de descubrir varias etiquetas para formularios HTML 4.0 que no conocía y que nos permiten  mejorar la usabilidad y la accesibilidad de nuestros formularios considerablemente. Desde Eslomas nos ofrecen una  explicación de éstas y varios ejemplos donde comprobar el resultado. Tal y como nos indican, estas  etiquetas están admitidas por la W3C, por lo que no tendremos ningún problema al validar nuestro formulario.

Fieldset y Legend

Estas etiquetas nos permiten crear un área visible dentro del formulario agrupando varios controles que estén relacionados facilitando al usuario su comprensión y usabilidad, ya que permite desplazarse de un control a otro a través de la tecla TAB. La etiqueta Fieldset crea el recuadro que agrupa a los controles, mientras que Legend nos permite implementar el título del área.

<fieldset>

<legend>Datos personales:</legend>

Nombre: <input size=”20″ type=”text” />

Dirección: <input size=”20″ type=”text” />

Teléfono: <input size=”20″ type=”text” />

</fieldset>

Datos personales:

Nombre:

Dirección: 

Teléfono: 

Label

Aunque no es una etiqueta desconocida, puede que el uso que se la da no sea el apropiado o simplemente que no es explota todo su potencial. Esta etiqueta permite definir un título a un control del formulario. Cada etiqueta label sólo puede estar asignada a un control, y digo asignada porque aquí es donde está el verdadero uso de esta etiqueta. Mediante el atributo for (propio de la etiqueta label) podemos especificar el id del control de formulario al que queremos asignar el label, de esta forma el usuario podrá hacer click sobre el control o sobre el label al realizar las operaciones con el formulario. Donde realmente podemos ver su efecto es en controles radiobutton ó checkbox, ya que para seleccionarlos o chequearlos podremos hacer click sobre el label o sobre los propios controles. De esta forma se mejora considerablemente la usabilidad del formulario. Cabe mencionar que dentro de la etiqueta label podemos incluir tanto texto como imágenes.

Selecciona tu vehículo

<input id=”bmw” name=”coche” type=”radio” />

<label for=”bmw”>BMW

<input id=”audi” name=”coche” type=”radio” />

<label for=”audi”><img src=””/> Audi

Selecciona tu vehículo:

Optgroup

Esta etiqueta nos permite crear grupos dentro de desplegables select. Los grupos están definidos por un título que aparecerá en negrita y cursiva, y que no será seleccionable.

La utilidad de optgroup reside en facilitar al usuario la lectura y comprensión de la lista desplegable.

<select name=”Modelo”>

<option selected=”selected” value=”none”>Seleccione…</option>

<optgroup label=”BMW”>

<option value=”bmw120d”>BMW 116d

<option value=”bmw118d”>BMW 118d

<option value=”bmw120d”>BMW 120d

<option value=”bmw318d”>BMW 318d

<option value=”bmw320d”>BMW 320d

</optgroup>

<optgroup label=”AUDI”>

<option value=”A1″>A1

<option value=”A2″>A2

<option value=”A3″>A3

<option value=”A4″>A5

</optgroup>

</select>

Selecciona el modelo:

Más info | http://www.eslomas.com/campos-fieldset-legend-label-optgroup

3 Comentarios