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

Open Web Tools Directory, recopilación de herramientas de desarrollo web

Open Web Tools Directory, recopilación de herramientas de desarrollo web

El mes pasado Mozilla lanzó Open Web Tools Directory, un directorio de herramientas y aplicaciones gratuitas para desarrolladores web. El objetivo del directorio es recopilar en un único lugar todas las herramientas disponibles en la red para facilitar el acceso a éstas. Si bien empezaron con un par de herramientas y aplicaciones, poco a poco han ido aumentando su número gracias a la participación de los usuarios, que pueden enviar sus proyectos a través de un formulario.

La presentación de las herramientas es muy creativa. A través de un entorno espacial, podremos ver los logos o screens de las tools disponibles. Al pinchar en cada imagen aparecerá una ventanita con información y un enlace a la página web del proyecto. Si bien es original, hay que decir que si hay muchos logos o screens, éstos se superponen y la navegación se hace bastante complicada e incluso algunas herramientas quedan sepultadas por otras. El entorno de navegación está desarrollado en HTML5, por lo que es necesario utilizar navegadores avanzados. De todos modos, hay disponible una versión en HTML básico para que cualquier usuario pueda acceder al contenido.

Las herramientas y aplicaciones están dividas en categorías: diseño, código, pruebas, despliegue y documentos. Al acceder a cada una, los logos se reordenan y aparecen en varias filas, facilitando su visualización. También disponemos de un buscador para acceder directamente al contenido que nos interesa. Entre las herramientas y aplicaciones que podemos encontrar, destacan frameworks como jQuery, Prototype o Dojo, el famoso debugger de firefox FireBug, y muchísimas otras herramientas o aplicaciones que son menos conocidas y que gracias a este portal, pueden darse a conocer.

Más información | http://tools.mozilla.com/index.html

Sin Comentarios

Hoja de Referencia rápida de HTML5

Hoja de Referencia rápida de HTML5

La nueva versión de HTML (HTML5) es un paso más en pro de la web semántica. El nuevo HTML5 (“Hypertext Markup Language”) incorpora nuevas etiquetas para estructurar y especificar el contenido de las páginas web. Si bien se mantienen los tags clásicos, los nuevos nos permitirán indicar notas (aside), conversaciones entre personas (dialog), ficheros de audio o video, detalles (details), etc.

La gente de Smashing Magazine ha publicado recientemente una tabla de referencia rápida (Cheat Sheet) de HTML5 para consultar de forma más sencilla las nuevas etiquetas.

Más info | http://www.smashingmagazine.com/html-5-cheat-sheet-pdf

Sin Comentarios