Ir al contenido principal

Entradas

Mostrando entradas de enero, 2009

Modelo entidad/relación de la base de datos de la wikipedia

En el siguiente enlace accederéis al modelo relacional completo de la base de datos de la wikipedia . Modelo entidad/relación de la base de datos de la wikipedia . [caption id="" align="aligncenter" width="385" caption="Modelo entidad/relación de la base de datos de la wikipedia"] [/caption]

PHPExcel - Crear y leer documentos Excel 2007 desde PHP

PHPExcel nos ofrece un conjunto de clases para PHP , con las cuales podremos escribir y leer ficheros Excel2007 . Este proyecto ha sido construido usando el estándar OpenXML de Microsoft. Permite establecer los meta datos (autor, título, descripción, ...), usar múltiples hojas de trabajo (worksheets), distintos tipos de letra y estilos, bordes de celda, rellenos, gradientes, añadir imágenes y mucho más. PHP Excel 2007 classes .

pChart - Librería para hacer gráficos dinámicos en PHP

Si necesitamos crear gráficas dinámicamente en nuestros proyectos web, una interesante solución, si usamos PHP en el lado del servidor, es la librería pChart . pChart permite generar gráficas de varios tipos (sectores, lineal, barras, ...) y personalizarlas según nuestras necesidades. Y si intuimos que nuestras gráficas se van a generar muchas veces y/o los datos necesarios para su generación (datos provenientes de consultas complejas o de orígenes de datos con mucha carga) son costosos de obtener, podemos hacer uso de su caché (pCache class) para ganar en rendimiento y evitar cargas innecesarias y repetitivas en el servidor. Lo único que se necesita es tener PHP compilado con el soporte para la librería GD. pChart - a PHP Class to build Charts . [caption id="" align="aligncenter" width="382" caption="pChart - a PHP class to build charts"] [/caption]

12 tipos de maquetación estándar en diseños web

En el siguiente artículo especifican doce tipos de maquetación estándar para el diseño web . No tiene desperdicio el artículo porque, aparte de enumerar, cada tipo de patrón es explicado con un boceto, un texto explicativo y algunos ejemplos de web reales que se ajustan a dicha maquetación. 12 Standard Screen Patterns + Bonus Pattern . [caption id="" align="aligncenter" width="425" caption="Designing Web Interfaces: 12 Standard Screen Patterns"] [/caption]

jQuery Cycle Plugin - Transiciones animadas de imágenes (slideshow)

jQuery Cycle plugin proporciona un mecanismo de hacer transiciones animadas de imágenes . Su implementación está basada en el InnerFade Plugin de Torsten Baldes, el Slideshow Plugin de Matt Oakes, y el jqShuffle Plugin de Benjamin Sterling. El plugin soporta pausas al pasar el ratón por encima de la imágen, paradas automáticas, retrollamadas (callbacks) antes y después, disparadores (triggers) y una gran cantidad de efectos para las trasiciones. La última versión estable (2.34), publicada en esta misma semana, requiere, como mínimo, la versión 1.2.3 de jQuery . Es un plugin muy ligero, tan solo ocupa 18 KB en su versión para entornos de producción. Como casi todo en jQuery , es muy fácil de usar. Aquí pongo un breve ejemplo básico: HTML: [sourcecode language="html"] [/sourcecode] CSS: [sourcecode language="css"] .pics { height: 232px; width: 232px; padding: 0; margin: 0; } .pics img { padding: 15px; border: 1px solid #ccc;

jQuery - Hacer que un textarea crezca mientras escribes automáticamente

Coqueto plugin para el framework jQuery con el que podremos implementar un interesante efecto: Hacer que un textarea crezca (verticalmente) dinámicamente mientras el usuario va escribiendo en el, es decir, si el textarea se queda pequeño para el texto que se está escribiendo pues va creciendo una línea. Desde el siguiente enlace puedes acceder a descargarte el plugin y a ver un ejemplo en funcionamiento: Elastic - Make your textareas grow facebook style (jQuery plugin) . Una vez incorporado el plugin a nuestro desarrollo web, el uso del mismo es muy fácil: [sourcecode language="javascript"] $('#myTextarea').elastic(); [/sourcecode] donde #myTextarea es el ID del elemento textarea al que queremos aplicar el efecto.

HTML5 más cerca. Nuevo borrador.

Hoy mismo (27 de Enero de 2.009) se ha publicado una nueva revisión del borrador de HTML5 por parte del W3c . Puedes acceder a dicho borrador en: HTML5 - W3C . Nos encontramos con estas nuevas caracteristicas: Nuevos elementos: section, video, progress, nav, meter, time, aside, canvas. Nuevos atributos para el elemento input: dates and times, email, url. Nuevos atributos: ping, charset, async. Atributos globales (aplicables a todos los elementos): id, tabindex, repeat. Se deja de usar los elementos: center, font, strike.

Internet Explorer no puede abrir una página: Operación anulada

Recientemente me he encontrado con un problema bastante extraño: Resulta que una página en concreto, y muy básica, solo con Internet Explorer y de manera aleatoria me mostraba una ventana emergente diciendo "No se puede abrir la página. La URL en cuestión. Operación anulada ." Este problema tan raro es achacable a Internet Explorer , primero porque en otros navegadores no ocurre, y segundo porque ellos mismos (Microsoft) dan fé de ello en la siguiente web, en la que también proponen una solución (en realidad proponen dos, una de ellas es cambiar a Internet Explorer 8 así que no he contado esa como solución): Pregunta: ¿por qué ¿reciben un mensaje de error "operación anulada" cuando visite una página Web en Internet Explorer? . En mi caso en particular, la causa expuesta en el enlace anterior no era el motivo de mi problema, y por consiguiente no pude aplicar su solución. Lo que yo hice fue coger todo mi bloque de script (JavaScript) situado dentro de head de mi p

Chuleta para JavaScript

Hoja de referencia para JavaScript , de una hoja, que incluye: Funciones y métodos. XMLHttpRequest. JavaScript en HTML. Expresiones regulares. Manejadores de eventos. Te lo puedes descargar en PDF o PNG desde el siguiente enlace: JavaScript Cheat Sheet . [caption id="" align="aligncenter" width="278" caption="JavaScript Cheat Sheet"] [/caption]

TCPDF - Crear ficheros PDF desde PHP

El proyecto TCPDF nos proporciona un mecanismo para crear ficheros PDF desde PHP . Este proyecto se inició en 2.002, y aún hoy sigue activo (la última versión estable es de esta misma semana). Se proporciona como Free Libre Open Source Software (FLOSS). Y una de las cosas más interesantes es que la podemos usar en PHP5 , pero si tenemos proyectos antiguos desarrollados en PHP4 hay otra versión de TCPDF disponible. TCPDF .

Proteger imágenes en la web

Una de las características principales de internet es el compartir y enlazar todo tipo de información. Pero algunas veces quedremos proteger ciertos aspectos de nuestras webs, como por ejemplo código fuente de javascript e imágenes . Un colega me ha pasado un enlace en el que explican (en inglés) diez maneras de intentar proteger nuestras imágenes en los desarrollos web que hagamos: 10+ Ways To Protect Images From Being Stolen . Aunque siempre quedará el truco del almendruco: hacer captura de pantalla, recortar, copiar y pastear. Pero seguro que con estos diez consejos se hace más complicada la labor de copiar imágenes protegidas y/o con copywrite.

Cursos gratuitos de introducción a la ingeniería informática de Standford School

En la web de Standford School podéis acceder a varios cursos , gratuitos en inglés, de introducción a la ingeniería informática . Podemos encontrar cursos como: Metodología de programación, programación abstracta, paradigmas de la programación, introducción a la robótica, etc. El material de cada curso es 100% descargable directamente desde la web. Puedes acceder al listado de cursos desde el siguiente enlace: Standford Engineering Everywhere .

Hacer HTTP Request en JAVA

Os dejo un código para hacer HTTP Request desde JAVA . Para ello tendréis que usar la clase HttpURLConnection . [sourcecode language="java"] java.net.URL url = new java.net.URL(PROTOCOL,HOST,PORT,FILE); HttpURLConnection m_con = (HttpURLConnection)url.openConnection(); m_con.setRequestProperty("NAME","VALUE"); m_con.setDoInput(true); m_con.setDoOutput(true); m_con.setAllowUserInteraction(true); m_con.getOutputStream().write(); [/sourcecode]

Si los lenguajes de programación fuesen religiones

Si los lenguajes de programación fueran religiones, ¿qué religión correspondería con que lenguaje? C sería el Judaísmo. Java sería el Cristianismo Fundamentalista. PHP sería en Cristianismo de Cafetería. C++ sería el Islamismo. C# sería el Mormonismo. Lisp sería el Budismo Zen. Haskell sería el Taoísmo. Erlang sería el Hinduísmo. Perl sería el Vudú. Lua sería Wicca. Ruby sería el Neo-Paganismo. Python sería el Humanismo. COBOL sería el Paganismo Ancestral. APL sería la Cienciología. LOLCODE sería el Pastafarismo. Visual Basic sería el Satanismo. En el siguiente enlace puedes ver el estudio completo ;-) Si los lenguajes fueran religiones...

.htaccess: Evitar mostrar el contenido de un directorio (carpeta)

Cuando solicitamos un determinado fichero a un servidor Apache desde un navegador web, en caso de que el servidor no lo encuentre, automáticamente (y por defecto) nos mostrará un listado del directorio (carpeta) , y nos permitirá navegar por dicho directorio y/o acceder a los ficheros que contenga. Este comportamiento no es muy seguro, porque estamos permitiendo ver nuestra estructura de directorio y su contenido a cualquiera, es por lo que es muy recomendable deshabilitarlo. Esto se consigue añadiendo la siguiente directiva al fichero .htaccess de nuestro directorio que queremos proteger: Options -Indexes

Hacer selección (SELECT) por orden aleatorio en MySQL

Si queremos hacer una consulta ( select ) en MySQL que nos obtenga un conjunto de registros con un orden aleatorio , tendremos que usar la función RAND() , tal y como muestro en el siguiente ejemplo: SELECT * FROM tbl_elbitcampeador ORDER BY RAND(); Esta consulta obtiene todos los registros, con todos sus campos, de la tabla tbl_elbitcampeador y ordena dichos registros aleatoriamente. Este método combinado con LIMIT es una manera muy útil de obtener un muestreo aleatorio de N elementos. Por ejemplo: SELECT * FROM tabla_elbitcampeador ORDER BY RAND() LIMIT 100; Obtiene 100 elementos aleatoriamente de la tabla tbl_elbitcampeador . La función RAND() no está implementada haciendo uso de un perfecto algoritmo de generación aleatoria, pero nos ofrece una poderosa y rápida herramienta de selección aleatoria en una tabla.

.htaccess: Denegar acceso por dirección IP

Podemos denegar el servicio, desde nuestro servidor Apache , a una dirección IP o aun rango de ellas, o bien permitirlo. Para ello modificaremos el fichero .htaccess del directorio al que queremos denegar (o permitir ) el servicio por IP . Ejemplo de permitir el acceso a todas las IP, excepto a la IP 1.2.3.4 : order allow, deny deny from 1.2.3.4 allow from all Con el siguiente ejemplo negamos el servicio al rango de IPs 1.2.*.* , y lo permitimos al resto: order allow, deny deny from 1.2. allow from all En este ejemplo denegaremos el servicio a todo lo que venga del dominio www.dominio.es : order allow, deny deny from www.dominio.es allow from all En los tres ejemplos siguientes haremos justamente lo contrario, denegarlo a todos y permitirlo solo en los casos que queramos: order deny, allow allow from 1.2.3.4 deny from all order deny, allow allow from 1.2. deny from all order deny, allow allow from www.dominio.es deny from all Es posible aplicar diversas normas: order allow, deny de