| |

Microsoft ofrece un driver SQL Server 2005 para PHP

Microsoft ha contribuido con PHP para crear un driver para acceder a SQL Server 2005. Diseñado para que permita una integración fiable y escalable con SQL Server para aplicaciones PHP desarrolladas en plataforma Windows.
Se trata de una extensión para PHP5 que permite leer y escribir data dentro de los scripts PHP, incluyendo procedimientos para acceder a los datos de SQL Server 2005 y SQL Server 2000 (incluyendo Express Edition), y hace uso de las características de PHP, como la lectura y escritura de objetos grandes.
Existe también un blog y un foro.
SQL Server 2005 Driver for PHP
Vía / International PHP Magazine

links for 2007-10-26

CSS Clean: optimiza tus CSS

cleancss.pngA la hora de crear nuestras hojas de estilos, podemos crear ficheros css que no sean del todo óptimos, ocupando más espacio de lo debido, entre otras cosas. Por ello CSS Clean nos ayuda a optimizar nuestros css de forma rápida y sencilla.
Basado en CSSTidy, existen varios niveles de compresión, permitiendo desde hacer el css algo ilegible, pero menos extenso, hasta una compresión personalizada, la cual permite quitar los últimos punto y comas, dejar los comentarios, eliminar las propiedades que no sean válidas para una versión de CSS.
Una aplicación que nos puede ser de mucha ayuda y que facilmente puede conseguir un ratio de compresión del 20%.
CleanCSS
Vía / dzone

Razones para pasarse a Linux

Bueno, también se le podría decir razones para quitarse el miedo a Linux, que conozco a unos cuantos que les vendría bien.

  • Coste: es gratuito e incluye a todas las aplicaciones.
  • Recursos: requiere menos recursos que Windows XP y menos que Vista.
  • Rendimiento: Linux es más rápido que XP, claro, que siempre hay polémica con esto.
  • Virus: han aparecido en los últimos años unos 48 mil virus para Windows, frente 40 para Linux.
  • Dual booting: las mejores distros de Linux facilitan la instalación dual, incluida el particionamiento de disco.
  • Instalación: la instalación en Linux es sencilla y muy rápida.
  • Reinstalación: puedes actualizar e reinstalar tantas veces quieras Linux, sin coste alguno.
  • Actualizaciones: el sistema se encarga de las actualizaciones de todo tipo de software, mientras que en Windows solo de los programas de Microsoft, el resto deberás hacerlo tú personalmente.
  • Seguridad: un punto importante son los parches de seguridad, se instalan automáticamente y aparecen en poco tiempo.

Supongo que como siempre que he escrito algo sobre esto, la gente opinará sobre Windows a favor o Linux a favor, bueno, bienvenidos sean los comentarios.

13 reasons why Linux should be on your desktop

Vía / Digg

LiteSpeed Web Server

LiteSpeed Web Server es un servidor web con alto rendimiento y alta escalabilidad. Es compatible con Apache por lo que es fácilmente intercambiable.
Los resultados son bastante destacables, es 9 veces más rápido que Apache, se consigue un 50% más de rendimiento en PHP, mejor rendimiento con Ruby on Rails, 3 veces más rápido que Apache en SSL.
Además admite CGI, FastCGI, LSAPI, PHP, Servlet/JSP, Proxy, SSL, IPv4, IPv6, es compatible con el .htaccess, el mod_security y el mod_rewrite de Apache. La seguridad está muy bien implementada y la instalación es sencilla, disponiendo de un administrador GUI para facilitar la labor de mantenimiento.
Existen versiones comerciales, pero tambien hay disponible una versión gratuita que tiene ciertas limitaciones.
Estoy deseando probar que tal va, ¿alguien lo ha usado?.
LiteSpeed Web Server
Vía / International PHP Magazine

Recursos para un sitio compatible con navegadores

Uno de los mayores problemas con los que nos encontramos cuando estamos desarrollando una aplicación web es la compatibilidad con los diferentes navegadores, bueno, realmente la compatibilidad de estos navegadores con los estándares.

Para ayudarnos en esta lucha, nada mejor que esta serie de recursos:

Designing For Every Browser: How To Make Your Site Fully Cross Browser Compatible

Vía / dzone

|

Minishowcase: galería PHP y Ajax

Minishowcase es una aplicación sencilla basada en PHP y Ajax que nos permite crear galerías de fotos facilmente, sin necesidad de configurar bases de datos o cambiar código.
minishowcase.png
Tan solo es necesario situar las fotografías en un directorio y ya dispondremos de un album, sin necesidad de crear thumbnails ya que Minishowcase se encarga de ello.
Disponible en varios idiomas, nos muestra las imágenes mediante lightbox y nos permite visualizarlas mediante un slideshow. A parte podemos compartir las galerías mediante enlaces permanentes.
Minishowcase
Vía / WebAppers

|

Outer joins en SQL

Hace días que llevo pensando en explicar cómo hacer un outer join en SQL (MySQL y Oracle), y hoy he encontrado unos diagramas que explican los diferentes tipos de joins que podemos hacer (MySQL).

El outer join se usa cuando queremos que obtener todos los campos de una tabla que cumplen una condición y los campos de otra tabla que coinciden con los de la primera tabla.

outerjoin.png

Imaginamos que tenemos una tabla de palabras en inglés y una tabla de traduciones:

Tabla : palabras
id / palabra
1 / bird
2 / flower
3 / sky
4 / tree
Tabla: traducciones
id / traduccion / idioma
1 / pájaro     / es
3 / cielo      / es

Se trata de tener la tabla de palabras y sus correspondientes traducciones (en este caso solo lo he hecho para español, pero se podrían incluir registros para otros idiomas). Si nos fijamos veremos que un join normal no lo podremos hacer porque si igualamos el id de palabras y traducciones habrá registros que no se mostrarán en la tabla de palabras porque no existen sus correspondientes en la tabla de traducciones. Por ello deberemos ejecutar las siguientes instrucciones en MySQL y Oracle:

/* MySQL */
SELECT *
FROM palabras
LEFT OUTER JOIN traducciones
ON palabras.id = traducciones.id
/* Oracle */
SELECT palabra, traduccion
FROM palabras, traducciones
WHERE palabras.id = traducciones.id (+)

Echadle un vistazo al resto de representaciones gráficas de los joins porque son muy aclaratorias.

A Visual Explanation of SQL Joins

| |

Laboratorio: modificar urls para CodeIgniter con mod_rewrite

codeigniter.pngCodeIgniter es uno de los frameworks PHP de los que más se habla últimamente, a mí personalmente me gusta bastante, aunque hay algunas cosas que no son como me gustaría.

Una de ellas es la estructura de las URLs, las URLs siguen el formato:

http://dominio/controlador/metodo/parametro/parametro/...

El controlador es la clase que se encarga de hacer las operaciones y el método es el método de la clase que realiza una función concreta.

Por ejemplo si tenemos una tienda online, podemos tener un controlador para productos y un método que sea editar, con el que se podrá modificar las características del producto. La url sería la siguiente:

http://tienda.com/articulo/editar/cafetera

Con esta url podemos editar un artículo llamado cafetera y además es bastante entendible. Pero, ¿qué pasa si queremos mostrar el artículo cafetera?, pues que la url debería ser la siguiente:

http://tienda.com/articulo/ver/cafetera

Pero lo de ver no queda demasiado bien y queda mejor si es directamente:

http://tienda.com/articulo/cafetera

El problema nos lo encontramos cuando queremos usar una URL que no indique el método y si un parámetro. Si no usamos ni método ni parámetro, CodeIgniter toma por defecto el método index, pero si no usamos método y si parámetro, CodeIgniter no es capaz de saber que lo que mandamos es un parámetro, por lo que hay que usar el Apache para que siga la estructura de CodeIgniter.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^articulo/(.+)$ index.php/articulo/ver/$1 [L]
RewriteCond $1 !^(index\.php|favicon\.ico)
RewriteRule ^(.*)$ index.php/$1 [L]

Hay que tener en cuenta que este ejemplo es válido únicamente si solo se va a usar siempre dos segmentos en la url, uno para el controlador y otro para el parámetro.

La segunda parte y el uso de index.php es debido a que CodeIgniter usa este script para gestionar toda la aplicación, y para que no aparezca, debemos redireccionarlo todo a index.php, menos los ficheros que existen como el favicon, el robot.txt, etc.