¡Salta! tm
Feed Estás viendo el archivo de la fecha: Septiembre 2008
Increíble NetBeans para PHP

Logotipo de NetBeansTengo que titular así esta entrada, ¡y no es para menos! ¿Recuerdas el super editor de código de Delphi? Bueno, pues, sigo probando NetBeans para PHP, y, el editor no deja de sorprenderme: bastante mejor que el de mi Eclipse PDT, snif, ¡y eso que el editor de Eclipse PDT es ya una herramienta estupenda! Pero, hay que reconocerlo, el de NetBeans para PHP cuenta con características verdaderamente alucinantes, a la par que útiles, por supuesto. La integración del código HTML, CSS, JavaScript, junto (pero no revuelto) a PHP es excelente.

Tienes que probar NetBeans para PHP. Tan sólo se le puede achacar un inconveniente no menor: la cantidad de recursos que consume. En mi ordenador, una máquina y aun poco viejita (AMD 1.100 Mhz con 700 MB), lamentablemente, NetBeans para PHP es inusable. ¿Cómo? ¿Pero no estoy diciendo que me he quedado alucinado con su editor de código? Y así es la verdad, pero, me temo que una cosa no quita la otra. Porque, cuando digo que es inusable, me refiero al trabajo diario. Yo "arranco" Eclipse PDT cuando me levanto y ahí está todo el día a mi disposición.

Para pruebas puntuales, como estoy haciendo, NetBeans para PHP promete, promete mucho, su editor es estupendo, la ayuda contextual, el acceso al manual de PHP "en caliente", según se muestra el autocompletado de código, la validación del código fuente (a varios niveles), el resaltado, la compenetración con otros lenguajes, en fin, todo indica que NetBeans para PHP va a ser algo estupendo, que estamos, probablemente, ante el mejor editor de PHP existente, al menos hasta donde yo he podido probar, y he probado algunos... pero, lamentablemente, vuelvo a decir, el consumo de recursos es muy elevado.

Ahora bien, tampoco olvidaré que se trata de una versión "beta". Por ejemplo, para la validación de código (que hay que aplicar en las opciones del programa) ya se indica que se trata de una característica "experimental", y que es algo (bastante) "pesada". Lo que me lleva a pensar que no sólo es cuestión de mi máquina, que, al fin y al cabo, corre razonablemente bien Eclipse PDT, que, al igual que NetBeans, está desarrollado sobre Java. Pero, uno no puede pensar que lo que ocurre es que NetBeans se comporta peor que Eclipse PDT, sino que el editor del primero sobrepasa en funcionalidades (por mucho) al segundo, y eso tiene un coste.

¡Pero quién tuviera un Pentium 4 de esos! ¡Con dos o tres gigabytes de RAM! Entonces tal vez viera "volar" a NetBeans para PHP, ¡y eso sería magnífico! En serio, tienes que probar NetBeans para PHP, sobre todo si utilizas Eclipse PDT, para que puedas compararlos. Hazlo si cuentas con un ordenador potente, y aun sin este, para ver por dónde van los tiros, la cantidad de características útiles que ofrece no ya el entorno (que ahí no he llegado aún) sino nada más que el editor de código fuente. Verdaderamente fantástico editor de código fuente el de NetBeans para PHP, con una serie de características que no sólo le hacen único, sino también muy, muy útil, a poco que se mejore su rendimiento.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
Variables globales y legibilidad

Logotipo de PHPAl hilo de mis pruebas con NetBeans para PHP, me percato de que ha veces puede ser necesario hacer uso del "global" de PHP, bien porque este IDE considera que puede haber un problema con una "variable no inicializada" (lo que no es del todo correcto), bien por lograr una mayor legibilidad del código fuente. Cuando uno trabaja en cierto proyecto, sobre todo si lleva en ello algún tiempo, y no hace uso de muchas variables globales, las tiene todas en la cabeza, por decirlo así, y sabe que una variable, aparentemente, sin inicializar, en realidad no es tal, porque sabe de qué va.

Pero, pensando en otros programadores que acaso se decidieran a echar un vistazo a nuestro código, tal vez no sea mala idea dejar claro que dichas variables están inicializadas, y corresponden a variables globales además. Pero, como suele ser habitual, siempre que se trata de estos asuntos, un poco de código suele arrojar no poca luz a lo que se quiere decir. Así, supón el siguiente código fuente, que corresponde a cierto "script real" que se encuentra en cierto proyecto en que trabajo... bueno, de Gesbit, para qué vamos a andarnos con tonterías. ;) Fíjate en el siguiente código fuente:

require('gb-init.php');
 
if(!defined('GB_GLOBALS')){
  exit;
}
 
$admin->AssertUserCan(
  ROLES_CAP_MANAGE_CACHE
);
 
if($cache->IsUsing()){
  $cache->ClearEntireCache();
  _e('Cache content has been clear');
}

El "script" funciona tal como se espera, es decir, personalmente, sé sin lugar a dudas de qué van las variables "admin" y "cache", sé que se inicializan donde deben, que están disponibles (para eso la bandera "GB_GLOBALS"), y, en fin, asumo que todo el mundo lo sabrá... De modo que, aunque el "script" funciona, añadiendo una sóla línea podemos lograr que alguien que no "sepa" tanto como nosotros, al menos tenga alguna idea de dónde salen las variables susomentadas:

require('gb-init.php');
 
if(!defined('GB_GLOBALS')){
  exit;
}
 
global $admin, $cache;
 
$admin->AssertUserCan(
  ROLES_CAP_MANAGE_CACHE
);
 
if($cache->IsUsing()){
  $cache->ClearEntireCache();
  _e('Cache content has been clear');
}

Una sóla línea, pero, que, deja claro que las variables "admin" y "cache" son variables globales, que, han sido inicializadas anteriormente, y que las usaremos en el "script" en que estamos, como puede verse a continuación. ¿No te parece a ti que esa línea no sobra, precisamente? ¿Que debe estar ahí, buscando la legibilidad del código fuente, y buscando que NetBeans (sea dicho de paso) deje de considerar esas variables de "dudosa" inicialización? Yo creo que así es, tanto que he escrito esta entrada que acabas de leer. Y procuraré aplicarme el cuento en este sentido. ¿Qué te parece? ;-)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
NetBeans como entorno para PHP

Logotipo de NetBeans Leo en la bitácora de Inwe que está disponible para su descarga una versión "beta" del entorno NetBeans para PHP, o sea, un IDE para trabajar con este estupendo lenguaje de programación. Los lectores de esta bitácora sabéis cómo me gusta Eclipse PDT, y, se me hace raro que algo pueda competir con este, puesto que uno pensaría que no necesita mucho más, tal vez algunos detalles, pero, en general, Eclipse PDT es un entorno para trabajar con PHP absolutamente recomendable.

Pero no sería bien negarle una oportunidad a NetBeans IDE para PHP, puesto que bien pudiera ser que nos lleváramos alguna sorpresa. Ahora mismo se trata de una versión "beta", como he dicho, pero, es de suponer que evolucione y, si tiene buenas bases, y parece que las tiene, quién sabe si no puede llegar a competir con el mismísmo Eclipse PDT. Así que lo he descargado, lo he instalado, y ya puedo comentar lo que me parece de esta nueva herramienta a tener en cuenta en cualquier caso.

En primer lugar decir que el entorno parece de lo más completo: un IDE en toda regla, con editores que tienen una pinta excelente, un autocompletado de código "inteligente" muy agradable, todo tipo de características en el editor, depurador incluido (si consigues hacerlo funcionar...),  en fin, que sí, que NetBeans para PHP merece un vistazo más despacio. ¿Pero puede compararse con Eclipse PDT? Pues igual no, en el estado actual, pero, que NetBeans promete, promete, eso desde luego.

Se trata además, como Eclipse PDT, de un entorno desarrollado en Java, lo que quiere decir que está disponible para varios sistemas operativos, entre ellos GNU/Linux y Windows, lo que representa un punto a su favor, si bien Eclipse PDT en esto es similar. NetBeans también es software libre, y gratuito además, y desde luego, aunque todavía Eclipse PDT me parezca mejor, ¡cuánto no hubiera dado hace años por encontrar un entorno como NetBeans para trabajar con PHP! Tal y como está.

Una de las cosas que me llaman la atención es que trabaja directamente con UTF-8. Otra de las cosas es la cantidad de características, como, por ejemplo, la posibilidad de conectarse con una base de datos y trabajar sobre ella sin salir del entorno desarrollo. El resaltado de código también es muy "bonito", con colores que, sin ser los mismos que los que acostumbro, no duele a los ojos: todo lo contrario. Y un detalle más del IDE: hay un botón en la barra de herramientas para "forzar" el "recolector de basura".

Y es que tal vez sea esto lo único que puede achacarse a estos entornos, tanto a Eclipse PDT como a NetBeans, y es que, en ordenadores más o menos viejitos, como desde el que escribo esto, son programas que no se muestran muy sueltos que digamos, al contrario, son bastante pesados y consumen sus buenos recursos del sistema. En el caso de NetBeans cuenta con ese detalle curioso: te permite poner en marcha el "recolector de basura" y animar un poco el rendimiento del IDE, eliminando recursos innecesarios.

En fin. Agradezco un a Inwe que hablara de este NetBeans, puesto que me siento ahora mismo como un niño con juguete nuevo. Así es que pienso dedicarle un tiempo a este entorno, a ver hasta qué punto podría llegar incluso a sustituir a Eclipse PDT, aunque, francamente, Eclipse PDT lleva más tiempo ahí, si no me equivoco, y pronto se espera su próxima versión, que incluirá mejoras nada desdeñables. Aún así, vuelvo a decir, este NetBeans promete, y parece una buena alternativa a Eclipse PDT, en un momento dado. ¡Pruébalo y lo verás!

Actualización: Ya encontré una característica "rompedora", y es que NetBeans es capaz de informar de errores en el código del estilo de variables sin inicializar, por ejemplo. Huelga decir que esta característica, presente en ZendStudio, pero, no en Eclipse PDT (por ahora, y hasta donde yo llego) puede llegar a ser algo realmente útil. ¿No te parece? ;-)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
Incluir archivos con Javascript

Logotipo de jQueryAunque existen algunas soluciones para incluir archivos en un documento HTML (una página web) utilizando Javascript, de la misma manera en que acostumbramos a hacerlo en PHP, digo, la solución que propone Johann Burkard, o sea el nuevo plugin "Inc" para jQuery, se aproxima al ideal en buena medida. Con este plugin para jQuery podremos incluir archivos HTML, XML, de texto "plano", en fin, utilizando para ello la magia de jQuery, es decir, utilizando Javascript del lado del "cliente".

El plugin permite la inclusión de archivos "de entrada", y también la inclusión programática de archivos. El plugin funciona en Internet Explorer (incluso en su versión 6), Opera, Safari, Firefox y aun otros navegadores, y no hace uso de "ActiveX" ni nada parecido. De hecho el plugin "Inc" para jQuery es una pocholada que ocupa 1.2 KB sin comprimir, y sólo unos cuantos bytes en su versión "minimizada". Obviamente se depende de Javascript para realizar una tarea así, pero, asumiendo esto, no deja de ser algo fantástico poder recurrir a ello.

Por ejemplo, a mí se me ocurre llevar a cabo una especie de "Mini Power Point", utilizando Javascript, y este plugin para jQuery puede ser muy, muy útil, de hecho imprescindible. Este plugin, junto con algún otro para jQuery, y todavía alguna pieza de código como pueda ser ShowDown, capaz de convertir en HTML archivos de texto plano con formato "Markdown", nos asegurarían conseguir una aplicación más o menos curiosa. Ciertamente, sería una aplicación que dependería de Javascript, pero, ¿y? Para eso están los navegadores que lo soportan, ¿no es así?

Así que no me veo yo incluyendo contenido con Javascript así como así, pero, sí que pienso tener en cuenta este plugin "Inc" para jQuery, si es que me decido a llevar a cabo algo como lo comentado, o para alguna que otra aplicación más que pudiera salir adelante. Personalmente, me ha dejado alucinado, porque alguna vez intenté hacer algo parecido y bueno, no tengo que decir que me quedó un churro inservible. Pero "Inc" cuenta con un código elegante, y, luego de probarlo en los navegadores en los que suelo, he podido comprobar que funciona estupendamente además.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Curioso, Software
Lidiando con las "magic quotes"

Logotipo de PHPEn PHP existe algo conocido como "magic quotes", una directiva de configuración, que, estando activada, se encarga de "escapar" determinados caracteres especiales, como son las comillas dobles o sencillas, directamente, sin más ni más, desde las variables de entrada del usuario, "GET", "POST", etc. Cómo será esta puñetera directiva que se considera obsoleta, que no va a estar disponible en PHP 6, y es que causa más problemas, tal vez, que las posibles soluciones que aporta. Al menos tal y como yo lo veo ahora, después de haberme estado toda una noche pegándome con este asunto, ¡que salí escaldado!

¿Qué es lo que ocurre con la famosa directiva "magic quotes"? Pues que no es consistente, por decirlo así, que en unos servidores está activa, y en otros no, que no causa problemas con ciertos datos, pero, sí con otros, en fin, ¡que no hay quien se aclare con ella! Y más sabiendo que desde el propio equipo de PHP se considera obsoleta, como ya he dicho, y, textualmente, dice el manual de PHP, "basar nuestro trabajo en esta directiva no se recomienda en absoluto". Ahora pongámonos en situación, y veamos una función crucial en cualquier sistema desarrollado en PHP, que de una u otra forma ha de existir: una función para escapar datos antes de incluirlos en una consulta SQL.

public function Escape($input){
  if(get_magic_quotes_gpc()){
    $input = stripslashes($input);
  }
  return mysql_real_escape_string(
    $input, $this->dbConnection);
}

Efectivamente, esa función, en realidad es un método de cierta clase "MySql" que vengo usando hace tiempo, y, el método en cuestión implementa el "escape" de caracteres exactamente como se recomienda en el manual de PHP. Se comprueba si la puñetera directiva "magic quotes" está activa, y, de ser así, se aplica la función "scripslashes", y, en todo caso, se aplica sobre la cadena a filtrar la función "mysql_real_escape_string". Hasta ahí todo bien, ya digo, tal como reza el manual de PHP, pero, amigo mío, ahí empiezan los problemas. Continuar leyendo...

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Software
Microsoft, Nokia y jQuery

Logotipo de jQueryPor si quedaba alguna duda de que si no existiera la biblioteca jQuery para JavaScript, digo, habría que inventarla, en la bitácora de jQuery se informa de que Microsoft y Nokia han decidido integrar esta maravillosa biblioteca en sus respectivos entornos de desarrollo, en el caso de Microsoft, Visual Studio, de forma que incluso se pueda hacer uso del "autocompletado" de código teniendo ya en cuenta que jQuery está ahí disponible.

Es una estupenda noticia, creo yo, para Jhon Resig y el equipo de programadores que llevan a cabo jQuery. La primera vez que tuve la oportunidad de toparme con esta biblioteca pensé dos cosas, probablemente, una de ellas equivocada: la primera, que me encontraba sin duda alguna ante una "pieza de software" que me iba a venir muy bien para mis desarrollos, como así ha sido; y, la segunda, que no se había inventado en España... no sé a qué venía este punto rancio patriota.

Sea como sea me alegro de veras por Jhon Resig, fíjate tú, sin conocerle, porque me da a mí que es una estupenda persona que ha llevado a cabo un trabajo insuperable con jQuery. Pero, un momento, ¿he dicho insuperable? No; estoy seguro de que todavía puede sorprendernos alguien, incluso el propio Resig, pero, desde luego, de lo que no puede caber la menor duda es de la excelencia de jQuery: y no lo digo yo, lo dice ya Microsoft y Nokia, además de otras personas y empresas que hacen uso de jQuery en sus proyectos.

Me enteré en la bitácora Variable Not Found y no puedo dejar de sonreirme pensando en Jhon Resig y en la sonrisa que tiene que tener él mismo. ¡Maravillosa jQuery! ;-)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Curioso, Software
« Entradas anteriores