Firefox 15 ya esta aqui

Ya esta disponible la nueva versión de Firefox getfirefox.com, y entre las novedades mas significativas podemos encontrar un nuevo inspector de capas, y por fin el depurador de Javascript integrado.

Anuncios

Sintonizando la Luna

Servidor PHP integrado en PHP 5.4

Una de las nuevas utilidades con las que cuenta el PHP 5.4 es la del servidor integrado, para lanzarlo es tan sencillo como abrir la terminal, situarnos en el directorio raíz de nuestra aplicación y ejecutar lo siguiente:

php -S localhost:8000

En este ejemplo he usado el puerto 8000 pero si este lo tenemos ocupado podemos probar con otro que tengamos libre. Este servidor esta pensado solo para desarrollo y no para producción.
+ Info

IDEs para programar con PHP – Un poco de historia

Llevo muchos años programando con PHP y aun no me he decantado al 100% por un IDE para programar, creo recordar que al principio usaba Dreamweaver, después pase por el programmers notepad, luego con Aptana, NetBeans, eclipse,  Zend Studio,  de vez en cuando TextMate, Coda, Gedit, Sublime Text 2 y ahora estoy probando PHPstorm.

Y después del notepad llego Dreamweaver

He de decir que en un principio programaba sobre plataforma Windows, y usaba Dreamweaver, pero sus continuas “ayudas” a la hora de dejarnos regalos dentro del código me resultaban bastante molestas a la hora de conseguir los resultados finales deseados, este primer Dreamweaver creo que era la versión 3, y era un gran salto cualitativo comparado con la programación con el notepad, que aunque no lo he nombrado lo he usado, al igual que el vi, y volviendo a visitarlo años después, veo que sigue padeciendo los mismos males, a su favor diré que fue una gran ayuda el código coloreado, y sobre todo a la hora de la creación de sitios, el cliente ftp integrado que llevaba lo cual era, y sigue siendo un gran punto a su favor,  así como la corrección de código.

Programmers Notepad, ¿involución o evolución?

Una de las herramientas que mas me gustaban a la hora de programación en C++ fue el Anjuta, y me resultaba extraño que no existiera alguna herramienta parecida para programar en PHP, y googleando descubrí el Programmers notepad. A su favor,  era gratis, código coloreado, multilenguaje, muy ligero y rápido, hay que tener en cuenta que las maquinas que teníamos entonces no eran ni mucho menos las de ahora, y el en comparación con el Dreamweaver, el programers notepad era muy rápido, eso si no tenia, o por lo menos no recuerdo, el cliente ftp, pero para mi ese era un mal menor.

IDEs multiplataforma – Eclipse & java flavor  (Aptana, Eclipse PDT, Zend Studio, NetBeans, PHPStorm)

Durante un tiempo, consideraba a linux que no era un sistema para trabajo de escritorio, eso si como buen Debianita que soy, si tenia que montar un servidor para cualquier tipo de servicio instalaba y trabajaba con Debian, y mas tarde con Ubuntu. Con la llegada de Ubuntu, considere que ya era hora de cambiar mi escritorio de trabajo a una distro Linux, con ese cambio tuve que buscar herramientas con las cuales poder programar en PHP con linux, lo cual no fue en absoluto un problema sino mas bien una ventaja. Creo que comencé ha programar algo con el Vi y luego con el Gedit, este ultimo me dio y me sigue dando muy buenos resultados, sintaxis coloreada, y multilenguage, ademas también permite cambiar el tema de trabajo para ponerlo a gusto de uno, yo soy de los que le gusta el fondo oscuro a la hora de programar. En esta búsqueda de un IDE completo descubrí Netbeans, el cual a parte de permitirme programar en Java y Ruby me servia perfectamente para programar en PHP, tiene un completo gestor de errores de sintaxis, documentación, vamos genial.  A la par que usaba Netbeans descubrí Aptana, el cual, se centraba mas en Ruby y en PHP y tenia unos cuantos extras que me gustaban bastante. En la ultima versión Aptana ha integrado un servidor web integrado el cual nos permite no tener que instalar un servidor web con php en nuestro navegador para probar nuestras aplicaciones, lo cual suena muy bien, aunque si estamos trabajando con PHP 5.4 ya tenemos un servidor PHP integrado http://www.php.net/manual/en/features.commandline.webserver.php. Decir que el Aptana esta basado en Eclipse así que me lance a probarlo también y la sorpresa fue muy agradable.

Con Eclipse la programación alcanza otro nivel, aparte de la sintaxis, multiplataforma, corrector de errores y multitud de plugins que puedes ponerle, esta el modo debug, la integración con la base de datos de desarrollo, navegador interno, ejecución de test unitarios, control de versiones, etc… vamos completísimo, pero para mi gusto consume muchos recursos.

Al igual que Eclipse, por que no de ja de ser lo mismo el Zend Studio avanza un poco mas en la programación con PHP, el modulo de depuración y refractorización, estadísticas de consumo de procesos, integración con PHPcloud, lo hacen una herramienta completísima, y durante bastante tiempo ha sido mi principal herramienta de trabajo… hasta hace unos días en los que descubrí PHPStorm, el cual me ha sorprendido muy gratamente. A parte de estar basado en java, al igual que Eclipse y Zend Studio, no carga tanto el sistema, y la integración con herramientas de refractorización y calidad de código es impresionante, así como el sistema de gestión de versiones. Hay cosas que podríamos considerar tonterías pero que la verdad se agradecen como por ejemplo en las hojas css cuando defines un color te sale ese color en un recuadro en el lateral, o si tienes una regla css que se puede optimizar, te lo indica y te lo optimiza. O la visualización de código inyectado, por ejemplo una cadena SQL dentro de un código PHP te puede aparecer marcada para que de un solo vistazo la localices, en pocas palabras impresionante.

TextMate, Coda, Sublime Text 2, volvemos al principio.. o vamos más lejos

Aunque  Sublime Text 2 es multiplataforma a diferencia de TextMate y Coda que solo son para Mac, lo he puesto aquí por que los tres editores, según mi opinión son del mismo tipo, aunque quizá Coda se salga un poco de ese estilo.

Durante muchos años, el programa por excelencia para programación en Mac ha sido el TextMate y tengo que decir que ese titulo esta muy bien merecido, rápido no lo siguiente, multilenguage, coloreado, plugins para todo lo que necesitas y mas, detector de errores, vamos completísimo, eso si la hoja de accesos rápidos y atajos de teclado también es completísima. Durante mucho tiempo el TextMate ha estado un poco estancado en su desarrollo, pero ya esta anunciada, y se puede descargar la versión 2 en la cual, aparte de migrar su código a open source las mejoras que han implementado son bastante buenas, pero creo que el tiempo que han estado parados lo han perdido frente a otra herramienta del mismo tipo que es Sublime Text 2. En lineas generales es bastante parecido a TextMate, esta basado en Python y al igual que Textmate tiene una larga lista de combinaciones de teclado para ejecutar distinas rutinas, asi com autocompletar comandos y funciones. También tiene un modo de no distracción y un mapa de código que puede resultados muy útil. A diferencia de TextMate, Sublime Text es multiplataforma.

Finalmente esta Coda, del cual la primera impresión fue muy buena, completísimo, sobre todo la parte de HTML y CSS, algo en lo que suelen flojear los otros, modo vista previa, el autocompletar, vamos un dreamweaver bien hecho y muy ligero.

Listado de IDEs
IDE Plataformas Idioma Precio licencia Enlace
Dreamweaver Win/Mac Multilenguaje 529,82€ / Trial Enlace
Programmer’s Notepad Win Multilenguaje Gratuito Enlace
Aptana Win/Mac/Linux Ingles Gratuito Enlace
Eclipse Win/Mac/Linux Ingles Gratuito Enlace
Zend Studio Win/Mac/Linux Ingles 299,00€ / Trial Enlace
NetBeans Win/Mac/Linux Multilenguaje Gratuito Enlace
PHPStorm Win/Mac/Linux Ingles 94€ / Gratuito / Trial Enlace
Sublime Text 2 Win/Mac/Linux Ingles 59$ / Trial Enlace
TextMate Mac Ingles 45,63€ / Trial Enlace
Coda 2 Mac Multilenguaje 99€ / Trial Enlace

Errores Comunes en Visual Basic – VB Tips

Esta entrada se sale un poco de la linea de lenguajes de programación que suelo tratar, pero por si alguna vez lo necesitamos, esta pagina me ha sido muy útil a la hora de resolver algún que otro problema que me ha podido surgir usando visual basic.

http://www.homepages.dsu.edu/olsonch/VBCommonProblems/VBTips.html

Nombres cortos de variables en bucles – PHP Tips

La inmensa mayoría de programadores, entre los cuales me incluyo, a la hora de escribir un bucle for lo hacemos usando la variable i, y nos quedaría de la siguiente manera:

for ($i = 0; $i <= 10; $i++) {
 // TODO Procesos a ejecutar
}

Este código esta claro y es muy fácil de interpretar.

Imaginemos ahora que tenemos un array llamado $ligas en el cual se almacenan las ligas de fútbol, cada clave de este array apunta a otra array con los equipos de esa liga, y cada clave numérica de este array apunta a un array donde aparecen los nombres de los jugadores.

for ($i = 0; $i < count($ligas); $i++) {
    for ($j = 0; $j <= count($ligas[$i]); $j++) {
        for ($k = 0; $k <= count($ligas[$i][$j]); $k++) {
            echo $ligas[$i][$j][$k];
        }
    }
}

Si realizamos el diseño de nuestros bucles de esta manera seguramente, si queremos compartir este código con alguien le resultara un poco difícil de entender, y cuando digo alguien también nos incluyo a nosotros mismos dentro de un tiempo cuando revisemos el código. Quizá si realizáramos este código de esta manera seria un poco mas claro

for ($liga = 0; $liga < count($ligas); $liga++) {
    for ($equipo = 0; $equipo < count($ligas[$liga]); $equipo++) {
        for ($jugador = 0; $jugador < count($ligas[$liga][$equipo]); $jugador++) {
            echo $ligas[$liga][$equipo][$jugador];
        }
    }
}

Ahora queda mas claro que es lo que se muestra en este bucle.

Crear una clave foranea con MySQL – Notas Mentales – MySQL Tips

MySQLCon esta entrada voy a inaugurar una serie de minientradas que iré creando, que voy a llamar notas mentales, serán cosas muy cortas y que si no las usamos con frecuencia, siempre que tenemos que tirar de ellas nos toca googlear.

La primera es la consulta para crear una clave foránea en MySQL en una tabla ya creada

 

ALTER TABLE `miTabla` ADD FOREIGN KEY (campodemiTabla) REFERENCES `otraTabla` (`Id`) ;