Wednesday, December 14, 2005

Designing Databases

By Reuven Lerner on Sat, 2000-04-01 02:00. Software

Structuring tables can improve database performance-- here's how to do it.

Relational databases are becoming increasingly popular for web applications. This is generally a good thing, allowing us to focus on the way in which our data is structured, rather than the way it is stored on disk. Offloading data storage and retrieval tasks to a relational database server means our programs can be smaller and easier to maintain. Designing Databases | Linux JournalAqui

Tuesday, November 29, 2005

Manual de WAP. WML. Tutorial de WAP. WML. WebEstilo.

Posicionamiento web. Promoción. WebEstilo.

Conceptos basicos. Manual de MySQL. Tutorial de MySQL. WebEstilo.

Entorno de trabajo. Manual de Flash. Tutorial de Flash. WebEstilo.

Conceptos basicos. Manual de CSS. Tutorial de CSS. Hojas de estilo. WebEstilo.

Conceptos basicos. Manual de JavaScript. Tutorial de JavaScript. WebEstilo.

Conceptos basicos. Manual de PHP. Tutorial de PHP. WebEstilo.

Friday, November 25, 2005

PHP Editor Review - PHP Designer 2005 3.0.6

Tuesday, November 22, 2005

Regexp Tutorial - Character Classes or Character Sets

http://www.regular-expressions.info/charclass.html

Monday, November 21, 2005

Scripting - JavaScript.

aulambra.com - JavaScript: "Scripting - JavaScript.
Ejemplos.

JavaScript | VBScript

Manejo de la Pagina
* Ver c�digo fuente
Ejemplo de como visualizar el c�digo fuente de otra p�gina desde nuestra web.
* Resolucci�n de Pantalla
Comprobaci�n de que resolucci�n de pantalla tiene el usuario que esta accediendo a nuestra p�gina web.
* Imprimir P�gina Web
Funci�n Javascript que permite imprimir el contenido de la p�gina web actual.
* A�adir a Favoritos
Como posibilitar al usuario que a�ada nuestra web al menu de favoritos

Formularios
* Busqueda en Lista
Busqueda y filtrado sobre los elementos de una lista en base a los car�cteres proporcionados por el usuario en un campo de texto.
* Contar palabras y caracteres
Script que cuenta los caracteres y las palabras que hay en un �rea de texto.
* Cuenta CheckBox
Contabilizar el n�mero de checkbox que ha selecionado un usuario dentro de un documento.
* Campos Obligatorios
Como obligar al usuario a cumplimentar ciertas partes de un formulario (textos y checkbox) antes de enviarlo.
* CheckBox y Operadores Binarios
Uso de los operadores binarios para"

Formación y desarrollo (JAVA, J2EE, UML, XML, etc). Tutoriales sobre nuevas tecnologías

Formaci�n y desarrollo (JAVA, J2EE, UML, XML, etc). Tutoriales sobre nuevas tecnolog�as: "Descripci�n
Esta es una de nuestra secciones favoritas.

Bien es verdad que ya hay libros de todo....que hay recursos en Internet de miles de cosas ....pero ....normalmente quieres hacer una cosa muy simple (prueba de concepto) ..... y tienes que dar mas vueltas que un tonto.

Nosotros os lo vamos a poner f�cil.....aqu�encontrareis unas gu�as en las que ...si sigues los pasitos ..... (dando por sabido lo menos posible) ...conseguir�is el objetivo. Tambi�n hay que decir que muchas de ellas son para usuarios muy avanzados ... y ciertos conocimientos .....se dan por supuestos ...
Todos los Tutoriales
Nombre Corto Nivel Visto Insercion Descripci�n PDF
Instrumentaci�n de componentes Java usando JMX Avanzado 9 2005-11-21 Os mostramos como utilizar las caracteristicas avanzadas de los servidores de aplicaciones Java/J2EE para realizar la instrumentaci�n de componentes Java usando JMX y poniendo como ejemplo la gesti�n dinamica de propiedades entre nodos pdf
Arquitectura SOA e Integraci�n de aplicaciones Avanzado 120 2005-11-14 Os presentamos un breve pero intenso pdf sobre la tecnolog�a Arquitectura SOA y la Integraci�n de aplicaciones pdf
Recordar primeros pasos por Linux B�sico 218 2005-11-09 En este tutorial recordamos"

Formación y desarrollo (JAVA, J2EE, UML, XML, etc). Tutoriales sobre nuevas tecnologías

Descripción
Esta es una de nuestra secciones favoritas.

Bien es verdad que ya hay libros de todo....que hay recursos en Internet de miles de cosas ....pero ....normalmente quieres hacer una cosa muy simple (prueba de concepto) ..... y tienes que dar mas vueltas que un tonto.

Nosotros os lo vamos a poner fácil.....aquí encontrareis unas guías en las que ...si sigues los pasitos ..... (dando por sabido lo menos posible) ...conseguiréis el objetivo. También hay que decir que muchas de ellas son para usuarios muy avanzados ... y ciertos conocimientos .....se dan por supuestos ...
Todos los Tutoriales
Nombre Corto Nivel Visto Insercion Descripción PDF
Instrumentación de componentes Java usando JMX Avanzado 9 2005-11-21 Os mostramos como utilizar las caracteristicas avanzadas de los servidores de aplicaciones Java/J2EE para realizar la instrumentación de componentes Java usando JMX y poniendo como ejemplo la gestión dinamica de propiedades entre nodos pdf
Arquitectura SOA e Integración de aplicaciones Avanzado 120 2005-11-14 Os presentamos un breve pero intenso pdf sobre la tecnología Arquitectura SOA y la Integración de aplicaciones pdf
Recordar primeros pasos por Linux Básico 218 2005-11-09 En este tutorial recordamos, de un modo visual, los primeros comandos en Linux sobre una emulación Qemu. pdf
Emular Ubuntu en XP con QEMU Intermedio 356 2005-11-04 Os mostramos como instalar y configurar Qemu en XP al mismo tiempo que montar la consola QemuManager e instalar sobre Qemu el sistema operativo Ubuntu (tipo Linux Debian) desde una imagen del cd pdf
Envío y Recepción de Fax en tu PC Básico 312 2005-10-28 Os mostramos como usar los servicios de Fax de tu PC para enviar y recibir Fax sin necesidad de disponer del aparato físico pdf
Emular XP en Debian con QEMU Intermedio 1215 2005-10-10 Alejandro Pérez no nos deja de sorprender con su conocimiento OpenSource. Hoy nos enseña a emular XP sobre Linux con QUEMU. pdf
Programación AOP en el lenguaje DE Intermedio 717 2005-10-09 Cristobal González nos habla de Introducción a la “Programación Orientada a Aspectos”. Extraído de los apéndices de su libro “Introducción al lenguaje de programación DE (del que es autor)”, actualmente en preparación. pdf
Certificados en IIS para activación SSL Intermedio 859 2005-09-09 En este tutorial vamos a habilitar el soporte SSL (Secure Socket Layer, comunicación segura por https) en un servidor IIS (Internet Information Server de Microsoft). pdf
Manejo de certificados digitaqles con keytool Avanzado 964 2005-09-09 En este tutorial vamos a presentar un monográfico sobre la herramienta keytool y el manejo de certificados para habilitar el SSL (Secure Socket Layer, comunicación segura por https) en un servidor. pdf
JSF y comparativa con Struts Intermedio 2379 2005-09-08 Os mostramos los pasos necesarios para empezar a utilizar JSF (Java Server Faces) y su comparación / relación con Struts pdf
Informar a Debian de la instalación de Java Básico 817 2005-09-04 En este tutorial os mostramos como informar a Debian GNU/Linux de nuestra Máquina Virtual Java, no instalada desde paquetes Debian. pdf
Auto-gestión de dispositivos USB en Debian Avanzado 887 2005-09-01 En este tutorial y gracias a HAL (Hardware Abstraction Layer) vamos a ver como se puede gestionar de forma automática cualquier dispositivo que tengamos conectado en nuestro ordenador, discos duros, USB, firewire, ... pdf
Gestión de Errores con Bugzilla Intermedio 763 2005-09-01 Alejandro Pérez nos enseña como instalar (en Debian) y utilizar Bugzilla, una herramienta gratuita de gestión de errores. pdf
Manejar dos bases de datos distintas con Hibernate Avanzado 2221 2005-07-13 Alejandro Pérez nos enseña como manejar dos bases de datos distintas con Hibernate pdf
Procesamiento XML en Java con JAXB y WSDP 1.6 Intermedio 2131 2005-07-09 Os mostramos como instalar la versión 1.6 de WSDP y como procesar los ficheros XML con uno de sus componentes, JAXB pdf
Fundamentos básicos del reconocimiento de Voz Intermedio 2760 2005-07-07 Cristian Martínez comparte con nosotros un tutorial sobre los fundamentos básicos del reconocimiento de Voz pdf
Primer vistazo a C# en Visual Studio 2005 Beta 2 Intermedio 1907 2005-07-04 Echamos un primer vistazo a C# en Visual Studio 2005 Beta 2 y os mostramos algunas diferencias respecto al lenguaje Java pdf
Invocación a un componente COM desde Java Avanzado 1543 2005-06-23 Os mostramos como invocar a un servidor de automatización OLE (COM) desde una aplicación Java, a través del producto gratuito JACOB pdf
Cliente y Servidor DCOM con MS Visual C++ Avanzado 1479 2005-06-22 Os mostramos como construir un servidor y cliente de Automatización OLE con las facilidades que proporciona el entorno de desarrollo Microsoft Visual C++ pdf
Introducción a Dev-C++ BÁSICO 1720 2005-06-22 Os mostramos el entorno de desarrollo Dev-C++, una buena opción a la hora de desarrollar en C/C++ utilizando un entorno gratuito, siempre mejor que hacerlo a mano. pdf
CRM: Bibliografía recomendada Intermedio 2742 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: CONCLUSIONES Y RECOMENDACIONES Intermedio 1424 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: DESARROLLO DEL PROTOTIPO DE eCRM Intermedio 2720 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: MODELO Y HERRAMIENTAS PARA DESARROLLO DE SOLUCIONES CRM Intermedio 2611 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: INTEGRACIÓN DE CRM Y E – BUSINESS Intermedio 1576 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: E–BUSINESS Y LOS NEGOCIOS EN LÍNEA Intermedio 2288 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: GESTIÓN DE LAS RELACIONES CON CLIENTES Intermedio 2409 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
CRM: Indice de Trabajo de CRM Intermedio 3410 2005-06-20 Cristhian Herrera comparte con nosotros su trabajo de fin de estudios sobre CRM. Es un extenso trabajo que seguro os gustará pdf
Crear discos RAM en Windows Intermedio 1461 2005-05-31 Os mostramos como instalar los drivers necesarios para poder montar un disco RAM. Gracias a este mecanismo podemos acceder a una zona de memoria RAM como si fuera un disco duro, autentando el rendimiento en aplicaciones críticas. pdf
La Eficacia Personal BÁSICO 1694 2005-05-30 Os invitamos a reflexionar sobre si gestionamos de un modo eficaz el tiempo .... probablemente el bien más escaso pdf
Primer vistazo a OpenToro BÁSICO 1697 2005-05-24 En este tutorial realizamos una primera inspección (muy positiva) de OpenToro, una herramienta que nos permite realizar la administración y publicación del contenido de tablas de base de datos de un modo rápido y visual. pdf
Firmar Applets Java para MS Internet Explorer Intermedio 1939 2005-05-18 Cristhian Herrera nos enseña a firmar un Applets Java, para adquirir privilegios, en Internet Explorer, usando herramientas Microsoft pdf
¿Es criar cerdos tan distinto a trabajar con nuevas tecnologías? BÁSICO 3050 2005-05-16 Os proponemos un cuento sobre la evolución de una empresa de crianza de cerdos y distintos problemas en su crecimiento. Seguro que, leyendo entre lineas, podéis sacar conclusiones (podéis no compartir las nuestras) enriquecedoras para vuestro contexto. pdf
Bibliografia básica recomendada Básico 2022 2005-05-09 Os comentamos algunos libros que creemos interesantes para aquellos que quieran avanzar (madurar ideas) en el mundo del desarrollo del Software, a todos los niveles. pdf
Informes en Java con iReports Intermedio 9661 2005-04-29 Cristhian Herrera, desde Ecuador, nos enseña como instalar y utilizar el iReports para la construcción de informes en tecnología Java. pdf
Pruebas de Rendimiento y Funcionales Web Avanzado 4483 2005-04-17 Jose María Toribio, nos enseña en este tutorial como podemos utilizar la aplicación gratuita JMeter para realizar pruebas de rendimiento y funcionales (vitales para la regresión y reingeniería) sobre nuestras aplicaciones Web pdf
Wireless Centrino en Linux Debian Intermedio 3607 2005-04-04 En este tutorial, Alejandro Perez nos enseña como configurar la red Wireless WIFI de tu centrino en Linux (Debian) pdf
UML 2.0 con Borland Together CE Intermedio 6105 2005-03-05 Os mostramos como instalar la versión CE de Borland Together que ya introduce novedades de la especificación UML 2.0. Tambien compartimos pensamientos sobre como afrontar correctamente un análisis de un sistema o una reingeniería de su documentación. pdf
Visualizar canales RSS con XSL como HTML BÁSICO 1864 2005-03-04 Os mostramos como poder enlazar un canal RSS con una hoja de estilo XSL para poder visualizar su contenido como HTML sin necesidad de herramientas específicas. Al mismo tiempo os mostramos como utilizar la herramienta gratuita CookTop. pdf
Rotación de Videos con VirtualDub BÁSICO 1812 2005-03-03 Os mostramos como rotar videos AVI con una herramienta gratuita llamada VirtualDub, herramienta que os sorprenderá por su sencillez y potencia. pdf
Herramientas gratuitas de gestión de proyectos BÁSICO 3963 2005-03-02 Os mostramos dos opciones de código abierto, construidas en Java, para ayudaros en la organización de vuestro trabajo diario (Memoranda) y proyectos (GanttProject). pdf
Edición de ficheros RSS con RssEditor Intermedio 1382 2005-03-02 Os mostramos como crear y administrar los ficheros de canales RSS a través de la extensión gratuita de FireFox RssEditor pdf
Navegador Mozilla FireFox Básico 1662 2005-03-01 En esta ocasión probamos el estado de evolución del navegador gratuito Mozilla FireFox, una verdadera alternativa en el mercado. pdf
Lectores de RSS BÁSICO 1575 2005-02-22 Os mostramos como instalar y utilizar un lector de RSS (sindicación simple) gratuito, llamado FeedReader, que nos permiten agregar titulares y noticias de nuestros Webs favoritos pdf
Endogamia y estrategia tecnológica Avanzado 1436 2005-02-20 Este es otro atípico tutorial donde, a través de un cuento, os invitamos a realizar una reflexión sobre las decisiones estratégicas que muchas veces criticamos. pdf
PostgreSQL 8.0 en Windows BÁSICO 5775 2005-01-25 Os mostramos como instalar la versión 8 de PostgreSQL en entorno Windows pdf
Instalación de Together para Eclipse Intermedio 6133 2005-01-23 Os mostramos como instalar la versión de evaluación de Together sobre Eclipse. Estas dos herramientas constituyen una excelente base para el trabajo profesional y serio en entornos Java. pdf
Todo está en los libros Intermedio 3080 2005-01-16 Este es un atípico tutorial en nuestro Web donde, a través de la interpretación personal de obras de psicología y estrategia actuales, os invitamos a aprender a apreciar este tipo de libros, lo que seguro contribuirá a vuestra evolución profesional. pdf
Planificación de proyectos XP Intermedio 5716 2005-01-02 En este tutorial veremos Xplanner, una herramienta de planificación y seguimiento de proyectos especialmente indicada para la metodología XP (eXtreme Programming). pdf
Nombrar dispositivos USB en Debian Intermedio 2988 2004-12-19 En este tutorial vamos a ver como podemos asignar nombres a los dispositivos USB en Debian, independientemente del nombre que le de el kernel. pdf
Evitar doble-click en JSPs y Struts Avanzado 4097 2004-12-06 Os mostramos como construir unas librerías de TAGs para evitar el problema de doble-click en aplicaciones JSP y como se soluciona (qué teneis que hacer) con el framework Struts pdf
Storyboard de un Web con Denim BÁSICO 2340 2004-11-30 Os mostramos como tomar requisitos, sobre la estructura preliminar de un Web, a través del uso de una herramienta visual llamada Denim. pdf
Struts y EL en Netbeans 4 Avanzado 5387 2004-11-15 Os mostramos como configurar la última contribución de Struts que se integra con el lenguaje de expresiones EL. pdf
Uso de Tiles en Struts Intermedio 4503 2004-11-14 Os mostramos como utilizar el sistema de plantillas proporcionado por Struts (tiles) pdf
Plantear una aplicación Web y Struts Avanzado 11959 2004-11-05 Os mostramos un posible modo de plantear una aplicación Web (análisis) y darla forma. El FrameWork utilizado es struts y tratamos de identificar qué depende de este FrameWork y qué no. pdf
La visión estratégica de la Información de un Web BÁSICO 3936 2004-10-21 Os planteamos como aprender a mirar desde otra perspectiva un Web y como, utilizando la información a nuestra disposición y herramientas sencillas con MS Excel, podemos obtener indicadores estratégicos que nos pueden ayudar a abrir la mente. pdf
Integración de Access y Word BÁSICO 5143 2004-10-14 Os mostramos lo últiles que pueden ser algunas de las herramientas ofimáticas de Microsoft: Word y Access ( y más aún integradas ) a la hora de generar la documentación necesaria en un proyecto. pdf
MS Access y la de gestión de Proyectos BÁSICO 4964 2004-10-07 Os mostramos como herramientas sencillas y potentes, como Microsoft Access, pueden ayudarnos a capturar y organizar información vital para los responsables de proyectos. pdf
Organizador de Ideas Gratuito: FreeMind BÁSICO 4669 2004-09-29 En este tutorial os mostramos como utilizar un organizador gratuito de ideas, llamado freemind. Con esta herramienta podemos avanzar rápidamente a la hora de hacer presentaciones, escribir un libro, preparar un CV u otras tareas de nuestra vida cotidiana. pdf
Organización de ideas con MindManager BÁSICO 5276 2004-09-29 En este tutorial podeis aprender como instalar y dar los primeros pasos con MindManager, un sencillo y potente producto que os permitirá poner en orden las ideas. pdf
Primer vistazo a NetBeans 4 BÁSICO 8128 2004-09-22 Os mostramos como construir con pocos click de ratón un esqueleto básico de una aplicación Web, al mismo tiempo que comprobamos la estabilidad de la primera beta de la versión 4 de NetBeans pdf
Creación automática de recursos Hibernate con Middlegen AVANZADO 7740 2004-08-26 En este tutorial aprendereis como utilizar la herramienta middlegen para generar distintas capas de persistencia (CMP 2.0, JDO, Hibernate, Torque), a partir de un modelo físico de datos, de un modo automático, mediante el uso de la herramienta middlegen pdf
Introducción a Hibernate AVANZADO 11591 2004-08-14 Cesar Crespo nos enseña como utilizar unos de los sistemas más extendidos de mapeo de objetos a estructuras relacionales (tablas de base de datos) pdf
Web Services en tu IPAQ AVANZADO 9042 2004-08-02 Cesar Crespo nos enseña como programar accesos Web Services desde tu IPAQ en Visual C++ con PocketSOAP, Apache SOAP y Axis pdf
Framework desarrollo eclipse AVANZADO 13638 2004-07-29 Aquí os mostramos algunas de las características de Eclipse pdf
Desarrollo Struts con XDoclet AVANZADO 9086 2004-07-28 Alejandro Perez nos enseña como simplificar el desarrollo de aplicaciones J2EE basadas en Struts, automatizando la generación de código con XDoclet pdf
Integración de IPlanet y Weblogic INTERMEDIO 3805 2004-07-27 Cesar Crespo nos muestra como instalar e integrar IPlanet y Webgic pdf
Creación de Webs con Power WebSite Builder BÁSICO 4276 2004-07-26 Creación de páginas web sin necesidad de conocimientos HTML, usando la herramienta Power Website Builder pdf
Introducción a XBRL INTERMEDIO 4981 2004-07-26 Ismael Caballero nos cuenta que es el XBRL, el nuevo estandar de intercambio financiero basado en XML pdf
Gestor de Contenidos Gratuito con Typo3 INTERMEDIO 6083 2004-07-22 César Crespo nos enseña como instalar y utilizar uno de los mejores gestores de contenidos gratuitos del mercado pdf
Optimización Java con Eclipse Profiler Plugin AVANZADO 6071 2004-07-21 Alejandro Pérez nos enseña como analizar el rendimiento de nuestras aplicaciones con Eclipse Profiler Plugin. pdf
Generación .exe con ficheros Java BÁSICO 7433 2004-07-17 Os mostramos como, utilizando la herramienta gratuita JSmooth, podemos generar un fichero .exe a partir de nuestros programas Java pdf
AdRotator en Página ASP .Net BÁSICO 3675 2004-07-17 Ismael Caballero nos cuenta como utilizar el control AdRotator en una página ASP .Net pdf
Autenticación basada en formularios (IIS y .Net). INTERMEDIO 5141 2004-07-09 Luis Paniagua nos enseña como realizar la configuración de un directorio privado en el servidor IIS y con .Net FrameWork instalado, al que accederemos mediante la validación de usuario en un formulario Web. pdf
Desarrollo Java con JGRASP BÁSICO 3408 2004-07-08 Os mostramos como instalar otra opción gratuita en el desarrollo Java, JGRASP pdf
Detección de errores Java con FindBugs INTERMEDIO 2327 2004-07-08 Os mostramos como instalar y utilizar FindBugs, una excelente herramienta para analizar, de un modo estático, posibles problemas en vuestro código Java pdf
Programa de Disponibilidad de un Web AVANZADO 4968 2004-07-02 Os mostramos como construir una aplicación que os permita monitorizar el funcionamiento de vuestro sistema Web pdf
Pruebas Web con JWebUnit AVANZADO 3076 2004-06-30 Os mostramos como automatizar las pruebas de caja negra (desde el punto de vista de usuario final) de vuestro Web con el Framework gratuito JWebUnit. Esta técnica es perfecta para crear test de regresión de aplicaciones Web complejas. pdf
Desarrollo Gráfico Scripts Ant BÁSICO 4601 2004-06-15 Os mostramos como crear y ejecutar scripts Ant (para automatizar tareas en el mundo Java) con las herramientas gratuitas Antelope y NetBeans pdf
Editor VI en Windows BÁSICO 2441 2004-06-14 Os mostramos como conseguir e instalar el famoso editor de Unix VI para vuestra plamaforma Windows. Utilizando habitualmente esta herramienta, nuestro trabajo multi-plataforma será menos traumático.. pdf
Ejecución de entorno Unix en Windows AVANZADO 5197 2004-06-10 Os enseñamos como ejecutar simulteneamente un entorno Windows y Unix en el mismo equipo gracias a CygWin (herramienta gratuita) pdf
Cachear porciones de JSPs INTERMEDIO 5551 2004-06-05 En este tutorial os ensañamos como incrementar increiblemente el rendimiento de vuestro Web basado en tecnología JSP con el FrameWork de cache OSCACHE pdf
Construcción ficheros HLP usando HTML AVANZADO 3216 2004-06-04 Os mostramos como montar un fichero HLP a partir de un árbol estático de HTML con la herramienta HTMLtoHLP pdf
Firma digital de un Applet BÁSICO 5158 2004-06-01 Para que un applet Java pueda ejecutarse en un cliente Web con la configuración de seguridad por defecto y/o adquirir privilegios de seguridad, es necesario firmarla digitalmente. Alejandro Perez nos enseña como hacerlo de un modo rápido y sencillo. pdf
Imágenes en Base datos y Java INTERMEDIO 9909 2004-05-22 Atendiento una de vuestras consultas, os mostramos como recuperar en Java, mediante JDBC una imagen almacenada en la base de datos MySQL pdf
Aplicación de Patrones de Diseño en Java AVANZADO 13144 2004-05-17 En este tutorial os mostramos como las técnicas avanzadas de diseño ( como patrones de diseño ) contribuyen a la contrucción de aplicaciones profesionales en Java. pdf
Almacenamiento en Windows Pocket 2003 INTERMEDIO 4027 2004-05-10 Cesar Crespo nos enseña como utilizar ObjectStore en nuestros programas Visual C++. El "Object Store" (ObS) en Windows Pocket 2003 cumple en muchos casos la misma función que el disco duro en un equipo de escritorio. pdf
Ejecutar JSPs almacenados en Base de Datos INTERMEDIO 10577 2004-04-18 Atendiendo una pregunta de nuestro foro, os mostramos como, con unos sencillos pasos, podemos ejecutar JSPs almacenandos en la base de datos. Esto puede ser una idea base para un gestor de contenidos construido en Java. pdf
Instalación de OC4J INTERMEDIO 6975 2004-04-17 Os mostramos las particularidades de la instalación de OC4J, el contenedor J2EE de Oracle pdf
Serialización Servlet-Applet INTERMEDIO 7014 2004-04-15 Os mostramos un ejemplo para serializar una respuesta en la comunicación servlet-applet pdf
Activación de la seguridad en Apache INTERMEDIO 11235 2004-04-07 Alejandro Pérez nos enseña como securizar Apache a través de autentificación básica y certificados de seguridad SSL. pdf
Añadir Scripting a programas Java INTERMEDIO 6810 2004-04-02 Os mostramos como añadir a vuestras aplicaciones soporte de Scripting, gracias a BeansShell. Esto nos permite ejecutar Java generado dinámicamente. pdf
Oscommerce, tienda gratuita en PHP BÁSICO 8662 2004-03-31 Alejandro Pérez nos enseña como podémos, en minutos, instalar y configurar una tienda en vuestro Web con OsCommerce, sobre Debian. pdf
Retoque fotográfico con GIMP BÁSICO 3338 2004-03-31 Os mostamos como instalar esta potente herramienta gratuita para la creación de imágenes y el retoque de imágenes. pdf
Fuentes Gnome (GTK) con KDE (Qt) INTERMEDIO 2726 2004-03-23 Alejandro Pérez nos enseña como configurar las fuentes de aplicaciones Gnome (GTK) si usamos KDE (Qt) pdf
Plugin PHPeclipse en Debian AVANZADO 24640 2004-03-23 Alejandro Pérez nos muestra como instalar el plugin de Eclipse: PHPeclipse, en GNU / Linux (Debian) pdf
Instalación LAMP en Debian INTERMEDIO 22418 2004-03-23 Alejandro Perez nos enseña como instalar nuestro entorno Apache, MySQL y php en Debian pdf
Patrones de diseño J2EE AVANZADO 15185 2004-03-23 Os mostramos una interpretación particular de los patrones de diseño J2EE pdf
Optimización de Serialización Java INTERMEDIO 4042 2004-03-18 Os mostramos una sencilla técnica para mejorar el rendimiento de la serialización de objetos en Java, a través de Streams asociados a buffers en memoria. pdf
Analizar ejecución de programa Java BÁSICO 6625 2004-03-16 Os mostramos como investigar el comportamiento de vuestros programas Java, en ejecución, a través del profiling. pdf
Introducción a los portales Java con Jahia AVANZADO 6646 2004-03-02 Os mostramos como comenzar con el desarrollo de portales (portlets) Java con Jahia pdf
Primeras aplicaciones con Bea Weblogic Platform INTERMEDIO 6471 2004-02-27 Os mostramos como instalar Bea Weblogic Platform así como a crear la primera aplicación, con su entorno visual, utilizando la implementación particular basada en Struts.... pdf
Reingeniería JDO con Druid AVANZADO 4461 2004-02-23 Os mostramos como crear vuestras clases y descriptores JDO, de tablas existentes, con la herramienta gratuita Druid. pdf
Otra implementación JDO con TJDO AVANZADO 5844 2004-02-20 Os mostramos como montar un ejemplo simple de JDO, a través de la implementación gratuita TJDO pdf
JDO con OJB AVANZADO 6694 2004-02-20 Os mostramos como configurar el entorno OJB de apache para construir la primera aplicación JDO pdf
Realizar Instaladores con NSIS 2.0 INTERMEDIO 7048 2004-02-15 Cesar Crespo no enseña como construir instaladores/desinstaladores, de un modo sencillo, a través de la herramienta gratuita NSIS 2.0. pdf
Generación de Informes pdf con DataVision INTERMEDIO 11610 2004-02-12 Os mostramos como simplificar la creación de informes un múltiples formatos, incluyendo pdf, con una fantástica herramienta visual (DataVision). Os mostramos como integrarla con Servlets pdf
Novedades en Java 1.5 AVANZADO 12545 2004-02-10 Ya está disponible la versión Beta del J2SDK 1.5. Os mostramos algunas de las nuevas características introducidas en el lenguaje Java: Clases genéricas, enumeraciones, bucles simplificados, etc. pdf
CMMI. Modelo de Madurez Software INTERMEDIO 19437 2004-02-05 Os introducimos a CMMI o Capability Maturity Model Integration. CMMI es un modelo de calidad exigido por el gobierno americano a sus proveedores para el desarrollo de Software. Su conocimiento es esencial para reducir costes de desarrollo. pdf
Forzar diálogo Guardar Como en JSPs INTERMEDIO 7419 2004-02-05 Os mostramos como afrontar tareas comunes en JSP: Forzar el diálogo Guardar Como al generar dinámicamente un fichero desde un JSP y asegurarnos que no se cachean nuestros ficheros (probado en IExplorer 6) pdf
Introducción al Java Web Start INTERMEDIO 6515 2004-02-03 Os mostramos como podéis distribuir aplicaciones de consola de un modo sencillo a través de Java Web Start. Es el mismo principio de los applets aplicado a aplicaciones. pdf
Integración de Visual Paradigm en NetBeans BÁSICO 4228 2004-02-02 Os mostramos como integrar esta fantastica herramienta con Netbeans pdf
Modelado UML con Visual Paradigm BÁSICO 9345 2004-02-02 Os mostramos como instalar y utilizar la versión gratuita de Visual Paradigm for UML. Cabe destacar que pemite extraer elementos de diseño desde textos de análisis. pdf
Soporte de Asserts en Java 1.4.x INTERMEDIO 2954 2004-01-30 Os mostramos como utilizar los asserts en Java (disponibles a partir de la versión 1.4) pdf
AspectJ, Programación con Aspectos AVANZADO 5447 2004-01-30 Os mostramos como configurar AspectJ (extensión Java para la programación basada en aspectos) y un pequeño ejemplo para medir la velocidad de una función sin alterar su código. pdf
Modelado de MySQL con herramientas gratuitas BÁSICO 11475 2004-01-25 Os mostramos otra alternativa de modelado gráfico de MySql. pdf
Gestión de errores con IIS BÁSICO 5204 2004-01-16 Ismael caballero nos enseña como evitar que aparezan pantallas genericas de error cuando trabajamos con IIS pdf
Mailings con ASP y ficheros INTERMEDIO 4981 2004-01-08 Ismael Caballero nos muestra una variación de su tutorial para enviar mailings con tecnología asp y ficheros (sin necesidad de base de datos) pdf
Mailings con asp y Base de Datos INTERMEDIO 6077 2004-01-08 Ismael Caballero describe el proceso de realización de un sistema para el envío de correos (mailings) de forma automática utilizando un sistema de base de datos (Microsoft SQL Server). pdf
Modelado Gráfico de MySQL INTERMEDIO 9863 2004-01-07 Os mostramos como instalar y utilizar DeZing e Importer de Datanamic para crear el modelo lógico y físico de bustra base de datos MySQL pdf
Problemas al planificar un proyecto BÁSICO 9050 2004-01-06 En este tutorial/artículo os presentamos una plantilla modelo (básica) para un proyecto software (orientado a aplicaciones Web/Java OOP) y os comentamos por qué es tan difícil cumplir con un plan de proyecto informático pdf
Instalación de Oracle8i INTERMEDIO 16051 2004-01-05 Cesar Crespo nos enseña las particularidades de la instalación de Oracle8i pdf
Soporte XML en Eclipse con X-MEN AVANZADO 6998 2003-12-27 Alejandro Perez nos enseña como potenciar el entorno eclipse para facilitarnos el trabajo con ficheros xml, gracias al pluggin X-MEN pdf
Administracion Web de MySQL BÁSICO 7821 2003-12-27 Os mostramos como instalar en vuestro PC phpMySQL, un potente gestor Web de MySQL utilizado en la mayoría de los Hostings. pdf
Compartir impresoras y ficheros con Linux AVANZADO 15425 2003-12-27 Cesar Crespo Martín y Alejandro Perez García nos enseñan como realizar la compartición de impresoras y ficheros con Linux, CUPS y SAMBA con clientes Windows. pdf
Medida del Rendimiento en aplicaciones J2EE AVANZADO 2652 2003-12-27 Os mostramos como medir el rendimiento de vuestras aplicaciones Java J2E pdf
Apache, MySQL y PHP INTERMEDIO 21965 2003-12-27 Os mostramos como configurar Apache, MySQL y PHP en vuestra máquina pdf
Pool de conexiones a BBDD con struts AVANZADO 8636 2003-12-27 Os mostramos como configurar un pool de conexiones a base de datos en vuestras aplicaciones construidas con struts pdf
Patrones de GRASP INTERMEDIO 15907 2003-12-22 Os presentamos una introducción a los patrones de asignación de responsabilides y su relación con el proceso unificado. pdf
Herramientas Gratuitas UML AVANZADO 14051 2003-12-19 Os mostramos como obtener algunas herramientas gratuitas UML, ArgoUML y Poseidon. pdf
Schemas XML. Introducción esquemas XML BÁSICO 7207 2003-12-17 Los esquemas XML (schemas XML) son una evolución natural de las DTDs. Os mostramos como emprezar con esta tecnología. pdf
Creando Servicios Web con Bea Workshop 8.1 INTERMEDIO 4021 2003-12-15 En este artículo os mostramos como funciona la nueva herramienta de Bea, Workshop y como crear servicios web con ella pdf
Transformación de XML y XSL en JSPs INTERMEDIO 12003 2003-12-06 Os mostramos como poder utilizar XML y XSL en JSPS, combinado con el Patrón MVC pdf
Administrar UNIX mediante Webmin AVANZADO 7853 2003-12-02 En este artículo os mostramos como administrar una máquina UNIX, mediante un interfaz web, con Webmin pdf
Descomposición de Imágenes BÁSICO 1999 2003-12-02 Os mostramos como, con un par de click, podeis descomponer una imagen grande en porciones. Ideal para construir mapas Web pdf
Introducción al UML BÁSICO 21303 2003-11-28 Este es el primer articulo sobre el diseño de proyectos orientados a objeto con UML, donde se describe los primeros diagramas a utilizar pdf
Integración de Struts y eclipse AVANZADO 18232 2003-11-28 Alejandro Perez nos enseña como construir un entorno de alta eficiencia de desarrollo on Struts a través de plugins de eclipse pdf
Gestión de contenidos y errores comunes INTERMEDIO 7722 2003-11-23 Os explicamos en que consiste la gestión de contenidos y cuales son los errores cometidos por multitud de empresas a la hora de abordar su implantación pdf
Temperatura del PC y Acoplamiento Electromagnético BÁSICO 6297 2003-11-22 Os mostramos algunos programas para ver en pantalla la temperatura de vuestra CPU y velocidad de ventiladores así como consejos de como proteger a vuestro PC de campos electromagnéticos. pdf
Comunicación entre Applets y Servlets INTERMEDIO 13302 2003-11-06 Os mostramos como comunicar un applet y un servlet a través de GET y POST, serializando objetos y teniendo en cuenta proxys y autentificación pdf
PHP Nuke en Windows 2000 BÁSICO 13193 2003-10-20 Os mostramos como instalar paso a paso Php-Nuke en vuestro entorno Windows con MySQL pdf
JSP 2.0, JSTL y Lenguaje de expresiones INTERMEDIO 20584 2003-10-18 Os mostramos las novedades de JSP 2.0: Nuevas librerías estandar de etiquetas y el lenguaje de expresiones con ejemplos de acceso a base de datos, XML y XSL en JSP pdf
Generador automático de Webservices INTERMEDIO 13707 2003-10-16 Os mostramos como crear un servicio Web a partir de una clases, gracias a generadores automáticos de código y NetBeans pdf
Pool de Conexiones y Tomcat5 INTERMEDIO 32120 2003-10-13 Os mostramos como instalar Tomcat5 en vuestro PC y como ejemplo de uso, configuramos un Pool de Conexiones y lo usamos contra MySQL pdf
Aplicación profesional con Struts AVANZADO 45751 2003-10-08 En este tutorial, os mostramos como crear una aplicación profesional, usando numerosos patrones y utilizando Struts. pdf
Message-Driven Beans al instante INTERMEDIO 5380 2003-10-03 Os mostramos como crear un EJB que consuma los mensajes JMS de una cola pdf
CMP Entity Beans y MySql INTERMEDIO 10869 2003-10-03 Os mostramos como crear un Entity Bean con persistencia controlada por el servidor, configurado para usar MySql pdf
Desarrollo de Entity Beans INTERMEDIO 12464 2003-10-02 Os mostramos como construir un Entity Bean básico y desplegarlo en el servidor J2EE de referencia. Lo usaremos como base de buenas prácticas J2EE pdf
Applet con gráficas JFreeChart INTERMEDIO 11437 2003-09-21 Os mostramos como mostrar en un applet las graficas generadas por JFreeChart sin necesidad cargar las clases en el cliente pdf
Despliegue gráfico de EJBs AVANZADO 10484 2003-09-21 Os mostramos como crear y desplegar de un modo gráfico un EJB de sesión el el servidor de aplicaciones de referencia de Sun pdf
Activación automatica de servicios RMI AVANZADO 6399 2003-09-18 En este tutorial veremos cómo utilizar el servicio de activación de objetos RMI directamente desde el cliente de forma automática pdf
Aplicación básica con RMI INTERMEDIO 13870 2003-09-05 Gracias a este tutorial, podreis aprender paso a paso como crear una aplicación cliente-servidor con RMI pdf
Automatización de procesos con Scripts en Windows BÁSICO 8788 2003-09-02 En este tutorial aprendereis a simplificar la actualización automática de ficheros de vuestro Web, utilizando comandos ftp. pdf
Aplicaciones con el framework de Microsft .NET INTERMEDIO 7004 2003-09-02 Ejemplo de desarrollo de una aplicación con el framework de Microsft .NET (creación de un servicio deEncuestas Web) pdf
Escritura log con Fichero UDP y JMS AVANZADO 10744 2003-08-23 Os mostramos ejemplos para cuantificar el coste de escritura de Logs por pantalla, fichero, UDP y JMS (describiendo como configurar el entorno) pdf
Gráficas en Java con JFreeChart INTERMEDIO 21956 2003-08-10 Os mostramos como generar gráficas profesionales, en aplicaciones y servlets, en Java con la librería gratuita JFreeChart pdf
Activar SSL en IIS INTERMEDIO 12646 2003-08-07 Os mostramos comos activar el soporte de https en IIS, creando vuestros propios certificados autofirmados, usando OpenSSL pdf
Upload de ficheros en Java INTERMEDIO 20586 2003-08-05 Os mostramos como enviar ficheros a un servidor Web y manipularlos en un servlet en el servidor, gracias a APIs de apache pdf
Activar soporte SSL en Tomcat BÁSICO 8374 2003-08-03 Os mostramos como activar el acceso SSL en Tomcat, utilizando certificados generados por Keygen (java) pdf
Repositorio CVS en Windows BÁSICO 11826 2003-08-02 Os mostramos como montar un servidor para el control de versiones CVS en Windows asi como acceder a él a través de WinCVS pdf
Mensajes multi-idioma en Java INTERMEDIO 6217 2003-07-20 Os mostramos como aprovechar las caracteristicas mutilenguaje de Java, usando las clases: Locate, ResourceBundle, MessageFormat, etc. Fundamental para un correcto diseño ... pdf
Técnicas básicas y poco comentadas en Java INTERMEDIO 11021 2003-07-19 Os mostramos como realizar algunas cosas simples en Java: Formateo de decimales y enteros, gestión de preferencias y comparación entre objetos de nuevas clases pdf
Comunicación entre TAGs, Beans y JSPs AVANZADO 10811 2003-07-18 Os mostramos las posibilidades de comunicación entre JSPs, Bean y etiquetas de usuario. pdf
Creación avanzada de Tags con cuerpo AVANZADO 5626 2003-07-17 En este tutorial os mostramos como crear TAGs para JSP que gestionen el cuerpo. pdf
Crear pdfs a partir de páginas HTML BÁSICO 9190 2003-07-16 Os mostramos como agrupar y convertir páginas HTML que os interesen en documentos PDF a través de herramientas gratuitas pdf
Primeros pasos con Swing BÁSICO 11842 2003-07-15 Os mostramos como crear una aplicación básica utilizando las librerías de Java Swing pdf
Acceso seguro a CVS a través de SSH AVANZADO 5729 2003-07-14 Os mostramos como segurizar los accesos a CVS a través de SSH, utilizando herramientas gratuitas pdf
Documentar código Java con JavaDoc BÁSICO 7516 2003-07-13 Os mostramos como utilizar los comentarios y etiquetas de JavaDoc para documentar programas Java. pdf
Decompilar Java BÁSICO 9591 2003-07-12 Os mostramos como recuperar el fuente de vuestro código a partir de los ficheros compilados .class pdf
Generar imagenes desde Servlets INTERMEDIO 10748 2003-07-11 Os mostramos como generar ficheros GIF desde un servlet java. Util para generear gráficas dinámicas, contadores, etc pdf
Gestión errores en JSPs INTERMEDIO 9923 2003-07-10 Os mostramos como realizar ciertas labores intermedias en JSPs: Comentarios, gestión de errores, formateo de fechas y precompilación de ficheros pdf
Uso de JNDI, includes y cookies en Servlets INTERMEDIO 8179 2003-07-09 En este tutorial veremos como usar variables de entorno desde JNDI, incluir un servlet en otro (include) y como usar cookies en Servlets pdf
Control navegación en Servlets INTERMEDIO 13347 2003-07-08 Os mostramos como construir el esqueleto de una aplicación basada en Servlets y JSP, con control de navegación. pdf
Seguridad en Tomcat INTERMEDIO 14690 2003-07-07 Os mostramos como proteger de un modo básico el acceso a recursos dentro de vuestro servidor de componentes Tomcat pdf
Aplicaciones con JSPs BÁSICO 25456 2003-07-06 Os mostramos como construir una aplicación con JSP que acceda a MySQL pdf
TagLibs y JSPs INTERMEDIO 11073 2003-07-05 Os mostramos como crear librerias de etiquetas para vuestros JSP y así simplificar su construcción. pdf
Páginas WML facil para tu movil Wap BÁSICO 5065 2003-07-04 Os enseñamos como usar una herramienta para construir de un modo sencillo páginas WML para dispositivos Wap pdf
Protege tu PC BÁSICO 7617 2003-07-03 Os mostramos como proteger tu máquina de ataques mientras estés conectado a una red o Internet pdf
Java en tu movil con J2ME INTERMEDIO 10314 2003-07-02 Os enseñamos como construir una aplicación Java capaz de correr en tu Movil gracias a J2ME pdf
XSLT:FO y FOP INTERMEDIO 9297 2003-07-01 Os mostramos como generar documentos PDF desde XML gracias a FOP y XSLT:FO pdf
Instalar JBoss INTERMEDIO 11921 2003-06-30 Os mostramos como instalar en servidor gratuito de aplicaciones JBOSS así como a automatizar su arranque y parada. pdf
Wap Hosting BÁSICO 5770 2003-06-29 Os mostramos como crear unestro primer portal Wap y las herramientas para navegar por él de un modo gratuito. pdf
SAX, DOM y NetBeans INTERMEDIO 13093 2003-06-28 En este tutorial os vamos a mostrar como manipular documentos XML desde Java y NetBeans pdf
Instalar OpenCms INTERMEDIO 9068 2003-06-27 Open CMS es uno de los principales gestores de contenidos gratuitos basados en Java. Os ensañamos a instalarlo sobre MySQL pdf
Consola de administración de Struts AVANZADO 7774 2003-06-26 En este tutorial aprenderemos a simplificar la gestión de Struts a través de una consola gráfica gratuita pdf
Struts Jakarta AVANZADO 34878 2003-06-25 Cuando se ha trabajado creando aplicaciones Java poco a poco se va viendo la necesidad de normalizar los desarrollo. Uno de los Framework (entornos) más extendidos es Struts pdf
JDBC y MySql INTERMEDIO 27220 2003-06-24 En el tutorial anterior vimos como instalar MySQL en Windows, ahora vamos a ver como acceder desde una aplicación Java. pdf
MySql en Windows BÁSICO 29906 2003-06-23 MySql es una de las principales bases de datos "gratuitas" que podemos encontrar en Internet. En este tutorial aprendereis a instalarlo en Windows pdf
Ado y Net INTERMEDIO 9549 2003-06-22 En este tutorial podeis descubrir como funciona ADO y las nuevas diferencias en arquitectura .Net . pdf
Test con JUnit INTERMEDIO 7414 2003-06-21 Cuando se hacen desarrollo profesionales, no basta con hacer los programas, hay que asegurarse de que van a funcionar. Una de las técnicas más seguras es crear aplicaciones que incluyan el código para autoprobarse. Os mostramos como usar JUnit pdf
Programa de dibujo en Java con NetBeans BÁSICO 15618 2003-06-20 En este tutorial os enseñamos a manejar el entorno de desarrollo NetBeans a través de la creación de una aplicación gráfica que sea capaz de pintar lineas de un modo persistente (a repintados). Es un buen ejemplo de gestión de eventos gráficos . pdf
Filtros de Servlets en Tomcat INTERMEDIO 12955 2003-06-19 En este tutorial os enseñamos la técnica (poco conocida) del encadenamiento de filtros en la activación de servlets, dentro del entorno Tomcat pdf
Gestión de proyectos con project BÁSICO 10932 2003-06-18 En este tutorial os enseñaremos crear un plan, realizar el seguimiento del proyecto, como cerrar el proyecto y comunicar los resultados pdf
Construir un Servidor Web en Java INTERMEDIO 17813 2003-06-17 En este tutorial os enseñamos los principios de las aplicaciones multi-hilo a través de la creación de un servidor web básico en Java. Podremos ver en un ejemplo real el uso de sockets, threads, excepciones, etc. pdf
JSP´s y Modelo-Vista-Controlador BÁSICO 24307 2003-06-16 En este tutorial os enseñamos como crear un JSP, su relación con los servlets y como crear un ejemplo MVC en Tomcat pdf
WebDav con IIS AVANZADO 3701 2003-06-15 En este tutorial podemos aprender como gestionar los contenidos de nuestro servidor Web sin necesidad de utilizar FTP. pdf
Introducción a ANT INTERMEDIO 10440 2003-06-14 En el mundo Java, la compilación, verificación e instalación de aplicaciones se ha normalizado con este potente paquete llamado ANT. pdf
Introducción a log4j INTERMEDIO 9321 2003-06-13 En un desarrollo Java es vital normalizar los logs para posteriormente poder depurar el funcionamiento de nuestra aplicación. Os mostramos como usar Log4J. pdf
Generación automática de código JDBC INTERMEDIO 19847 2003-06-12 En este tutorial os enseñamos como, sin conocimiento de JDBC, crear vuestro programas en Java, gracias a JDBCTest. pdf
XML y XSL en Cliente INTERMEDIO 7937 2003-06-11 En este tutorial os enseñamos como formaterar documentos XML directamente en vuestro navegador a través de Plantillas XSL. En cursos sucesivos veremos como hacerlo en el servidor, para no crear dependencias con el navegador del cliente. pdf
XML básico BÁSICO 9888 2003-06-10 Si quieres ver de un modo visual como crear un documento XML, este es tu tutorial. Este es el primero de un conjunto de tutoriales que iremos publicando sobre esta fascinante y amplia tecnología pdf
Subdomio Gratis en NoIP BÁSICO 4068 2003-06-09 Si no tienes una IP fija y quieres tener un servidor en casa, necesitas que la gente acceda a ti a través de un alias (nombre de domino). Si tus direcciones (URLs) son largas o complicadas puedes crearte alias más sencillos. pdf
Motor de Busqueda en Tu Web BÁSICO 3513 2003-06-08 En este tutorial te enseñamos como configurar un buscador externo para proporcionar capacidades de busqueda a tu Web. El buscador en este ejemplo es Atomz. pdf
EJB´s y Orion AVANZADO 11066 2003-06-07 Recreación de la guía paso a paso de como crear una aplicación Web con EJB´s y Servlets y su despliegue con ANT sobre Orion pdf
Rendimiento de aplicaciones Web INTERMEDIO 4927 2003-06-06 En este tutorial veremos una introducción al funcionamiento de la Suite e-Test de Empirix. pdf
Desarrollo dispositivos móviles con WindowsCE INTERMEDIO 3927 2003-06-05 Con este tutorial conocerás, pantalla a pantalla, todos los pasos para crear y probar tu primera aplicación Visual C++ para Windows CE, sin ningún conocimiento. pdf
Configuración y acceso a OpenLdap desde Java con JNDI AVANZADO 8324 2003-06-04 Con este tutorial, aprenderás como realizar la instalación de OpenLdap, así como la carga de un LDIFF básico, y a configurar el entorno Java para acceder a la información. pdf
Primeros programas OpenGL con Visual C++ AVANZADO 8551 2003-06-03 Con este tutorial, como insertar código OpenGL en un programa Visual C++, creando un sistema planetario básico. pdf
Como crear un Cron en Unix INTERMEDIO 3294 2003-06-02 Cuando desarrollamos aplicaciones, numerosas veces defemos programar tareas que se ejecuten periodicamente. Os ensañamos a hacerlo en Unix pdf
Creación de ejemplo en PHP BÁSICO 8419 2003-06-01 Os enseñamos a construir en PHP el ejemplo de como mostrar la frase del día pdf
Alojamiento Gratuito con soporte Dinámico BÁSICO 3591 2003-05-31 Os enseñamos como alojarnos en un proveedor que nos proporcione soporte php gratuito pdf
Obtención de Alojamiento Gratuito BÁSICO 3763 2003-05-30 No tiene sentido tener un Web en tu PC, sin que nadie pueda acceder. Lo suyo es colgarlo de un servidor en Internet. Aquí te ensañaremos a hacerlo pdf
Instalar un Web en tu máquina Windows BÁSICO 14549 2003-05-29 Si trabajais habitualmente en plataforma Windows, en este tutorial podreis encontrar todos los pasos necesarios para instalar un servidor Web en vuestra propia máquina. Esto puede ser el primer paso para crear una Intranet. pdf
Creación de Un Web básico BÁSICO 6441 2003-05-28 Como como construir nuestras primeras páginas HTML pdf


Algunas de estas guías.... podemos ampliarlas y convertirlas en cursos, así que si alguien necesita formación...no tiene más que contactar con nosotros .... tenemos una buena red de contactos dispuestos a ganarse unos durillos extras.

Formación y desarrollo (JAVA, J2EE, UML, XML, etc). Tutoriales sobre nuevas tecnologías

Formaci�n y desarrollo (JAVA, J2EE, UML, XML, etc). Tutoriales sobre nuevas tecnolog�as: "Descripci�n
Esta es una de nuestra secciones favoritas.

Bien es verdad que ya hay libros de todo....que hay recursos en Internet de miles de cosas ....pero ....normalmente quieres hacer una cosa muy simple (prueba de concepto) ..... y tienes que dar mas vueltas que un tonto.

Nosotros os lo vamos a poner f�cil.....aqu�encontrareis unas gu�as en las que ...si sigues los pasitos ..... (dando por sabido lo menos posible) ...conseguir�is el objetivo. Tambi�n hay que decir que muchas de ellas son para usuarios muy avanzados ... y ciertos conocimientos .....se dan por supuestos ...
Todos los Tutoriales
Nombre Corto Nivel Visto Insercion Descripci�n PDF
Instrumentaci�n de componentes Java usando JMX Avanzado 9 2005-11-21 Os mostramos como utilizar las caracteristicas avanzadas de los servidores de aplicaciones Java/J2EE para realizar la instrumentaci�n de componentes Java usando JMX y poniendo como ejemplo la gesti�n dinamica de propiedades entre nodos pdf
Arquitectura SOA e Integraci�n de aplicaciones Avanzado 120 2005-11-14 Os presentamos un breve pero intenso pdf sobre la tecnolog�a Arquitectura SOA y la Integraci�n de aplicaciones pdf
Recordar primeros pasos por Linux B�sico 218 2005-11-09 En este tutorial recordamos"

JavaScript RegExp Object - Using Regular Expressions with Client Side Scripting

JavaScript RegExp Object - Using Regular Expressions with Client Side Scripting: "If you use JavaScript to validate user input on a web page at the client side, using JavaScript's regular expression support will greatly reduce the amount of code you need to write.

In JavaScript, a regular expression is written in the form of /pattern/modifiers where 'pattern' is the regular expression itself, and 'modifiers' are a series of characters indicating various options. The 'modifiers' part is optional. This syntax is borrowed from Perl. JavaScript supports the following modifiers, a subset of those supported by Perl:

* /g enables 'global' matching. When using the replace() method, specify this modifier to replace all matches, rather than only the first one.
* /i makes the regex match case insensitive.
* /m enables 'multi-line mode'. In this mode, the caret and dollar match before and after newlines in the subject string.

You can combine multiple modifiers by stringing them together as in /regex/ism.

Since forward slashes delimit the regular expression, any forward slashes that appear in the regex need to be escaped. E.g. the regex 1/2 is written as /1\/2/ in JavaScript.
Regexp Methods of The String Class

To test if a particular regex matches (part of) a string, you can call the strings's match() method: if (myString.match("

CMS Facil

Perl-tutorials

Table of Contents
# 42: A trivial CMS (Content Management System)
# 41: A pure Perl, vendor-independent, database administration tool
# 40: Easy naming and downloading of files
# 39: JavaScript event handlers and Style Sheets
# 38: A CGI script incorporating a pop-up window
# 37: A CGI script demonstrating uploading of files
# 36: A generic CGI script for database editing
# 35: An admin tool for MySQL: myadmin.pl
# 34: Complex Object Building with Class::MakeMethods - cob.pl
# 33: Simple Object Building with Class::MakeMethods - sob.pl
# 32: Showcasing Image::Magick (part 2): xml-2-image.pl
# 31: Showcasing Image::Magick (part 1): text-2-image.pl
*

Friday, November 18, 2005

Introducción al lenguaje JavaScript

Radamiel

Radamiel: "RIVER 5 - SAN LORENZO 1
Radamiel

Falcao est�tan dulce que ya empalaga: le hicieron un penal antes del minuto, regal�una asistencia deliciosa, convirti�dos goles.."

Creating Queries | Linux Journal

More about searching

More about searching

Searching your web site has never been easier--an introduction to search methods. (From Linux Journal #70, February 2000)

The CGI (``common gateway interface'') standard was originally designed to allow users to run programs via the Web, which would otherwise be available only on the server. Thus, the first CGI programs were simple interfaces to grep and finger, which received their inputs from an HTML form and sent the HTML-formatted output to the user's browser.

CGI programs, and server-side programs in general, have become more sophisticated since then. However, one application is as useful now as it was in the past: the ability to search through a web site for documents containing a particular word or string.

While search sites (now called ``portals'') make it possible to browse through a large collection of pages spread out over a number of servers, the CGI programs handling the search have an easier job. They have to go through files only on the local server, producing a list of URLs matching the user's request.

This month, we will look at how to implement several different types of search programs. While these programs might not compete successfully with ht://Dig and Webglimpse, they do offer some insight into how these sorts of programs work, and the trade-offs programmers must make when writing such software.

Simple Command-Line Search

Perl has long been my favorite language for writing server-side programs. This is in no small part due to its strong text-handling capabilities. Perl comes with a rich regular-expression language that makes it easy to find one piece of text inside another.

For example, the following one-line program prints any line of test.txt containing the word ``foo'':

perl -ne 'print if m/foo/' test.txt
The -n switch tells Perl not to print lines by default, and the -e switch allows us to insert a program between the single quotes ('). We instruct Perl to print any line in which the m// (match) operator finds the search string. We can accomplish the same thing inside of a program, as shown in Listing 1.

Listing 1

Of course, the above program searches for a single pattern (the string ``foo'') inside of a single file (test.txt). We can generalize the program more by using an empty <>, rather than iterating over . An empty <> iterates through each element of @ARGV (the array containing command-line arguments), assigning each one in turn to the scalar $ARGV. If there are no command-line arguments, then <> expects to receive input from the user. Listing 2 is a revised version of the above program, which searches through multiple files for the string ``foo''. Notice how this version of the program prints the file name as well as the matching line. Since $_ already contains a newline character, we need not put one at the end of the print statement. Listing 2 could be rewritten in a single line of Perl with the following:

perl -ne 'print "$ARGV: $_" if m/foo/;' *
Listing 2

Finally, we can make our simple search a bit more sophisticated by allowing the user to name the pattern, as well as the files. Listing 3 takes the first command-line argument, removing it from @ARGV and putting it in $pattern. To tell Perl that $pattern will not change, and that it should compile the search pattern only a single time, we use m// with the /o option.

Listing 3

Thus, to search for the pattern f.[aeiou] in all of the files with a ``txt'' extension, we would use:

 ./simple-search-3.pl "f.[aeiou]" *.txt
Sure enough, every line containing an f, followed by any character, followed by a vowel is printed on the screen, preceded by a file name.

File::Find

The above would be a good skeleton for our web-based search if all documents on a web site were stored in a single directory. However, the opposite is normally the case: most web sites put files in a number of different directories. A good search program must traverse the entire web hierarchy, searching through each file in each directory.

While we could certainly accomplish this ourselves, someone has already done it for us. File::Find, a package which comes with Perl, makes it possible to create a find-like program using Perl. File::Find exports the find subroutine, which takes a list of arguments. The first argument is a subroutine reference invoked once for each file encountered. The remaining arguments should be directory and file names, which File::Find will read in sequence until it gets to the end.

For example, Listing 4 is a short program that uses File::Find to print all of the file names in a particular directory. As you can see, File::Find exports the variable $File::Find::name which contains the current file name as well as the find subroutine. The current directory is stored in $File::Find::dir.

Listing 4

Listing 5

Listing 5 contains a version of simple-find-2.pl, which uses File::Find to search through all of the files under a given directory tree. As with many programs that use File::Find, the bulk of simple-find-2.pl is spent inside of find_matches, a subroutine called once for every file encountered under the directories passed in @ARGV. To find all files containing the pattern ``f.[aeiou]'' in directories under /home and /development, type:

 ./simple-find-2.pl "f.[aeiou]" /home /development
Line 11 of simple-find-2.pl is particularly important, in that it undefines $/, the variable that determines the end-of-line character. Normally, Perl's <> operator iterates through a file line by line, returning undef when the end is reached. However, we want to search across an entire file, since a pattern might have to extend across lines. By undefining $/, the line

my $contents = ();
puts the entire contents of the file handle FILE inside of $contents, rather than just one line.

Searching via the Web

Now that we can search for a pattern through all files under a particular directory, let's connect this functionality to the Web, searching through all of the files under the HTTP server's document hierarchy. Such a program will need to receive only a pattern from the user, since the web hierarchy does not change very often.

Listing 6

Listing 6 is an HTML form that could be used to provide such input. This HTML form will submit its contents to simple-cgi-find.pl, the CGI program in Listing 7. Its parameter, pattern, contains a Perl pattern to be compared with the contents of each file in the web hierarchy, simple-cgi-find.pl will return a list of documents matching the user's pattern.

Listing 7

Unfortunately, the version of File::Find that comes with Perl does not work with the -T flag, which turns on Perl's secure tainting mode. CGI programs should always be run with -T, which ensures data from outside sources is not used in potentially compromising ways. In this case, however, we cannot run our program with -T. File::Find relies on the fastcwd routine in the Cwd module, which cannot be run successfully with -T. For the time being, I suggest using these programs without -T, but when the next version of Perl is released, I strongly recommend upgrading in order to run CGI programs with full tainting enabled.

Our search subroutine, find_matches, has been modified slightly, so that its results will be more relevant for web users. The first thing it does is to make sure the file has an extension indicating it contains HTML-formatted text or plain text. This ensures that the search will not try to view graphics files, which can contain any characters:

return unless (m/.html?$/i or m/.te?xt$/i);
Some web sites mark HTML files with extensions of .htm (or .HTM), and their text files with .txt or .TXT rather than .text. The above pattern allows for all of these variations, ignoring case with the /i switch and ensuring the suffix comes at the end of the pattern with the $ metacharacter.

After retrieving the contents of the current file, find_matches checks to see if $pattern can be found inside of $contents, which contains the document's contents. We surround $pattern with characters, to look for $pattern on word boundaries. This ensures that searching for ``foo'' will not match the word ``food'', even though the former is a subset of the latter.

If a match is found, find_matches creates a URL by substituting $search_root with $url_root, which hides the HTML document hierarchy from outside users. It then prints the file name inside a hyperlink to that URL:

if ($contents =~ m|$pattern|ios)
{
my $url = "$File::Find::dir/$filename";
$url =~ s/$search_root/$url_origin/;
print qq{
  • $filename
    }
    }
  • Improving on our Web Search

    While simple-cgi-find.pl works, it does have a few problems. For starters, it fails to differentiate between HTML tags and actual content. Searching for ``IMG'' should not match any document containing an tag, but rather any content outside of HTML tags that contains that string. For this reason, we will modify our program to remove HTML tags from the input file.

    Beginning Perl programmers often think that the best way to remove HTML tags is to remove anything between <>, as in:

    $contents =~ s|<.+>||g;
    Since ``.'' tells Perl to match any character and ``+'' tells Perl to match one or more of the preceding character, the statement above looks like it tells Perl to remove all of the HTML tags. Unfortunately, this is not the case--the statement will remove everything between the first <> appearing in the file. This is because Perl's patterns are ``greedy'', and try to maximize the number of characters they match.

    We can make ``+'' non-greedy and try to match only the minimum number of characters by placing a ? after it. For example:

    $contents =~ s|<.+?>||g;
    There is also the sticky issue of what to do if $pattern contains white space. Should it be considered as a search phrase containing one or more white-space characters? Or should it be considered several different words with an ``or'' or ``and'' search?

    Listing 8

    In this particular case, we can have our cake and eat it, too. By adding a set of radio buttons to the HTML form, we can allow the user to choose whether a search should be literal, require all search terms be found or require any one of the search terms be found.

    Now we can modify our program to handle ``phrase'' searches (as we have been doing until now), ``and'' searches (in which all of the words must appear) and ``or'' searches (in which one or more of the words must appear).

    To implement an ``and'' search, we break the elements of phrase apart by using Perl's ``split'' operator. We then count the number of words we must find, iterating over each of them and checking to see if they all exist in $contents. If $counter reaches 0, we can be sure all words appear:

    elsif ($search_type eq "and")
    {
    my @words = split /s+/, $pattern;
    my $count = scalar @words;
    foreach my $word (@words)
    {
    $count- if ($contents =~ m|$word|is);
    }
    unless ($count)
    {
    print qq{
  • $filename
    };
    $total_matches++;
    }
    }
  • An ``or'' search is even easier to implement: once again, we break apart $phrase across white space. If even one of the constituent words matches, we can immediately print the file name and hyperlink, and return from find_matches:

    elsif ($search_type eq "or")
    {
    my @words = split /s+/, $pattern;
    foreach my $word (@words)
    {
    if ($contents =~ m|$word|is)
    {
    print qq{
  • $filename
    };
    $total_matches++;
    return;
    }
    }
    }
  • Finally, we should have some way of telling the user how many documents matched. We do this by creating a new variable, $total_matches, which is incremented each time a document matches (as seen in the above code fragments for ``and'' and ``or'' searches).

    These improvements are incorporated into the search program called better-cgi-search.pl, in Listing 9, not printed here but contained in the archive file (see Resources).

    Excluding Directories and Files

    We now have a fairly full-functioned search program which can handle most types of searches people want to do. The problem is that we have created a program which might be too good to be useful. Many clients of mine put information on their web sites before it is meant to be released. Without any links leading to these directories and documents, it is unlikely someone will be able to find them. However, our search program does not depend on hyperlinks in order to find documents.

    One common solution is for a search program to ignore any directory containing a file named .nosearch. This file does not need to contain any data, since its mere existence means a directory's contents will be skipped.

    The easiest implementation would check for the existence of a .nosearch file in the directory currently being probed. However, checking for a file with each invocation of find_matches would reduce our program's already slow performance even more. It would be better if the program looked for a .nosearch file, then stored that information in a hash to be retrieved when future files in that directory are examined.

    The Other Problem

    We can solve these problems with two lines of code. The first, placed at the beginning of find_matches, returns immediately if a .nosearch file has already been found in the current directory:

    return if ($ignore_directory{$File::Find::dir});
    If we reach the second line, it means that no .nosearch file has been found for this directory. However, there are several circumstances under which a .nosearch file wasn't found, yet should still be in force: when we are examining the .nosearch file itself, when a .nosearch file is in the directory or when a .nosearch file is in the parent directory. After all, if the parent directory should not be searched, then neither should the child directory. Here is the code fragment that accomplishes this:

    # Mark the directory as ignorable ...
    $ignore_directory{$File::Find::dir} = 1
    if (($_ eq ".nosearch") ||
    (-e ".nosearch") ||
    (-e "../.nosearch"));
    Listing 10 contains a version of better-cgi-search.pl with these additions and can be found in the archive file (see Resources).

    Is This Any Way to Run a Search?

    If you have already run these programs, you most likely found the main problem with the system outlined above: it is very slow. If your web site contains 100 files, this system works just fine. However, if your site expands to 1000 or 10,000 files, users will stop the search in the middle because it will take too long.

    For this reason, most serious search engines employ a different strategy, one which separates the searching into two different stages. In the first stage, an indexing program takes the files apart, keeping track of where they might be. A second program is then run as a search client, looking through the pregenerated index for matches.

    Next month, we will examine some ways of creating such indices, as well as how to look through them. Perhaps our simple search programs will not be able to complete with Glimpse and ht://Dig, but at least we will understand roughly how they work and what trade-offs are involved when writing search programs.

    A Simple Search Engine

    Searching your web site has never been easier--an introduction to search methods. (From Linux Journal #69, January 2000)

    The CGI (``common gateway interface'') standard was originally designed to allow users to run programs via the Web, which would otherwise be available only on the server. Thus, the first CGI programs were simple interfaces to grep and finger, which received their inputs from an HTML form and sent the HTML-formatted output to the user's browser.

    CGI programs, and server-side programs in general, have become more sophisticated since then. However, one application is as useful now as it was in the past: the ability to search through a web site for documents containing a particular word or string.

    While search sites (now called ``portals'') make it possible to browse through a large collection of pages spread out over a number of servers, the CGI programs handling the search have an easier job. They have to go through files only on the local server, producing a list of URLs matching the user's request.

    This month, we will look at how to implement several different types of search programs. While these programs might not compete successfully with ht://Dig and Webglimpse, they do offer some insight into how these sorts of programs work, and the trade-offs programmers must make when writing such software.

    Simple Command-Line Search

    Perl has long been my favorite language for writing server-side programs. This is in no small part due to its strong text-handling capabilities. Perl comes with a rich regular-expression language that makes it easy to find one piece of text inside another.

    For example, the following one-line program prints any line of test.txt containing the word ``foo'':

    perl -ne 'print if m/foo/' test.txt
    The -n switch tells Perl not to print lines by default, and the -e switch allows us to insert a program between the single quotes ('). We instruct Perl to print any line in which the m// (match) operator finds the search string. We can accomplish the same thing inside of a program, as shown in Listing 1.

    Listing 1

    Of course, the above program searches for a single pattern (the string ``foo'') inside of a single file (test.txt). We can generalize the program more by using an empty <>, rather than iterating over . An empty <> iterates through each element of @ARGV (the array containing command-line arguments), assigning each one in turn to the scalar $ARGV. If there are no command-line arguments, then <> expects to receive input from the user. Listing 2 is a revised version of the above program, which searches through multiple files for the string ``foo''. Notice how this version of the program prints the file name as well as the matching line. Since $_ already contains a newline character, we need not put one at the end of the print statement. Listing 2 could be rewritten in a single line of Perl with the following:

    perl -ne 'print "$ARGV: $_" if m/foo/;' *
    Listing 2

    Finally, we can make our simple search a bit more sophisticated by allowing the user to name the pattern, as well as the files. Listing 3 takes the first command-line argument, removing it from @ARGV and putting it in $pattern. To tell Perl that $pattern will not change, and that it should compile the search pattern only a single time, we use m// with the /o option.

    Listing 3

    Thus, to search for the pattern f.[aeiou] in all of the files with a ``txt'' extension, we would use:

     ./simple-search-3.pl "f.[aeiou]" *.txt
    Sure enough, every line containing an f, followed by any character, followed by a vowel is printed on the screen, preceded by a file name.

    File::Find

    The above would be a good skeleton for our web-based search if all documents on a web site were stored in a single directory. However, the opposite is normally the case: most web sites put files in a number of different directories. A good search program must traverse the entire web hierarchy, searching through each file in each directory.

    While we could certainly accomplish this ourselves, someone has already done it for us. File::Find, a package which comes with Perl, makes it possible to create a find-like program using Perl. File::Find exports the find subroutine, which takes a list of arguments. The first argument is a subroutine reference invoked once for each file encountered. The remaining arguments should be directory and file names, which File::Find will read in sequence until it gets to the end.

    For example, Listing 4 is a short program that uses File::Find to print all of the file names in a particular directory. As you can see, File::Find exports the variable $File::Find::name which contains the current file name as well as the find subroutine. The current directory is stored in $File::Find::dir.

    Listing 4

    Listing 5

    Listing 5 contains a version of simple-find-2.pl, which uses File::Find to search through all of the files under a given directory tree. As with many programs that use File::Find, the bulk of simple-find-2.pl is spent inside of find_matches, a subroutine called once for every file encountered under the directories passed in @ARGV. To find all files containing the pattern ``f.[aeiou]'' in directories under /home and /development, type:

     ./simple-find-2.pl "f.[aeiou]" /home /development
    Line 11 of simple-find-2.pl is particularly important, in that it undefines $/, the variable that determines the end-of-line character. Normally, Perl's <> operator iterates through a file line by line, returning undef when the end is reached. However, we want to search across an entire file, since a pattern might have to extend across lines. By undefining $/, the line

    my $contents = ();
    puts the entire contents of the file handle FILE inside of $contents, rather than just one line.

    Searching via the Web

    Now that we can search for a pattern through all files under a particular directory, let's connect this functionality to the Web, searching through all of the files under the HTTP server's document hierarchy. Such a program will need to receive only a pattern from the user, since the web hierarchy does not change very often.

    Listing 6

    Listing 6 is an HTML form that could be used to provide such input. This HTML form will submit its contents to simple-cgi-find.pl, the CGI program in Listing 7. Its parameter, pattern, contains a Perl pattern to be compared with the contents of each file in the web hierarchy, simple-cgi-find.pl will return a list of documents matching the user's pattern.

    Listing 7

    Unfortunately, the version of File::Find that comes with Perl does not work with the -T flag, which turns on Perl's secure tainting mode. CGI programs should always be run with -T, which ensures data from outside sources is not used in potentially compromising ways. In this case, however, we cannot run our program with -T. File::Find relies on the fastcwd routine in the Cwd module, which cannot be run successfully with -T. For the time being, I suggest using these programs without -T, but when the next version of Perl is released, I strongly recommend upgrading in order to run CGI programs with full tainting enabled.

    Our search subroutine, find_matches, has been modified slightly, so that its results will be more relevant for web users. The first thing it does is to make sure the file has an extension indicating it contains HTML-formatted text or plain text. This ensures that the search will not try to view graphics files, which can contain any characters:

    return unless (m/.html?$/i or m/.te?xt$/i);
    Some web sites mark HTML files with extensions of .htm (or .HTM), and their text files with .txt or .TXT rather than .text. The above pattern allows for all of these variations, ignoring case with the /i switch and ensuring the suffix comes at the end of the pattern with the $ metacharacter.

    After retrieving the contents of the current file, find_matches checks to see if $pattern can be found inside of $contents, which contains the document's contents. We surround $pattern with characters, to look for $pattern on word boundaries. This ensures that searching for ``foo'' will not match the word ``food'', even though the former is a subset of the latter.

    If a match is found, find_matches creates a URL by substituting $search_root with $url_root, which hides the HTML document hierarchy from outside users. It then prints the file name inside a hyperlink to that URL:

    if ($contents =~ m|$pattern|ios)
    {
    my $url = "$File::Find::dir/$filename";
    $url =~ s/$search_root/$url_origin/;
    print qq{
  • $filename
    }
    }
  • Improving on our Web Search

    While simple-cgi-find.pl works, it does have a few problems. For starters, it fails to differentiate between HTML tags and actual content. Searching for ``IMG'' should not match any document containing an tag, but rather any content outside of HTML tags that contains that string. For this reason, we will modify our program to remove HTML tags from the input file.

    Beginning Perl programmers often think that the best way to remove HTML tags is to remove anything between <>, as in:

    $contents =~ s|<.+>||g;
    Since ``.'' tells Perl to match any character and ``+'' tells Perl to match one or more of the preceding character, the statement above looks like it tells Perl to remove all of the HTML tags. Unfortunately, this is not the case--the statement will remove everything between the first <> appearing in the file. This is because Perl's patterns are ``greedy'', and try to maximize the number of characters they match.

    We can make ``+'' non-greedy and try to match only the minimum number of characters by placing a ? after it. For example:

    $contents =~ s|<.+?>||g;
    There is also the sticky issue of what to do if $pattern contains white space. Should it be considered as a search phrase containing one or more white-space characters? Or should it be considered several different words with an ``or'' or ``and'' search?

    Listing 8

    In this particular case, we can have our cake and eat it, too. By adding a set of radio buttons to the HTML form, we can allow the user to choose whether a search should be literal, require all search terms be found or require any one of the search terms be found.

    Now we can modify our program to handle ``phrase'' searches (as we have been doing until now), ``and'' searches (in which all of the words must appear) and ``or'' searches (in which one or more of the words must appear).

    To implement an ``and'' search, we break the elements of phrase apart by using Perl's ``split'' operator. We then count the number of words we must find, iterating over each of them and checking to see if they all exist in $contents. If $counter reaches 0, we can be sure all words appear:

    elsif ($search_type eq "and")
    {
    my @words = split /s+/, $pattern;
    my $count = scalar @words;
    foreach my $word (@words)
    {
    $count- if ($contents =~ m|$word|is);
    }
    unless ($count)
    {
    print qq{
  • $filename
    };
    $total_matches++;
    }
    }
  • An ``or'' search is even easier to implement: once again, we break apart $phrase across white space. If even one of the constituent words matches, we can immediately print the file name and hyperlink, and return from find_matches:

    elsif ($search_type eq "or")
    {
    my @words = split /s+/, $pattern;
    foreach my $word (@words)
    {
    if ($contents =~ m|$word|is)
    {
    print qq{
  • $filename
    };
    $total_matches++;
    return;
    }
    }
    }
  • Finally, we should have some way of telling the user how many documents matched. We do this by creating a new variable, $total_matches, which is incremented each time a document matches (as seen in the above code fragments for ``and'' and ``or'' searches).

    These improvements are incorporated into the search program called better-cgi-search.pl, in Listing 9, not printed here but contained in the archive file (see Resources).

    Excluding Directories and Files

    We now have a fairly full-functioned search program which can handle most types of searches people want to do. The problem is that we have created a program which might be too good to be useful. Many clients of mine put information on their web sites before it is meant to be released. Without any links leading to these directories and documents, it is unlikely someone will be able to find them. However, our search program does not depend on hyperlinks in order to find documents.

    One common solution is for a search program to ignore any directory containing a file named .nosearch. This file does not need to contain any data, since its mere existence means a directory's contents will be skipped.

    The easiest implementation would check for the existence of a .nosearch file in the directory currently being probed. However, checking for a file with each invocation of find_matches would reduce our program's already slow performance even more. It would be better if the program looked for a .nosearch file, then stored that information in a hash to be retrieved when future files in that directory are examined.

    The Other Problem

    We can solve these problems with two lines of code. The first, placed at the beginning of find_matches, returns immediately if a .nosearch file has already been found in the current directory:

    return if ($ignore_directory{$File::Find::dir});
    If we reach the second line, it means that no .nosearch file has been found for this directory. However, there are several circumstances under which a .nosearch file wasn't found, yet should still be in force: when we are examining the .nosearch file itself, when a .nosearch file is in the directory or when a .nosearch file is in the parent directory. After all, if the parent directory should not be searched, then neither should the child directory. Here is the code fragment that accomplishes this:

    # Mark the directory as ignorable ...
    $ignore_directory{$File::Find::dir} = 1
    if (($_ eq ".nosearch") ||
    (-e ".nosearch") ||
    (-e "../.nosearch"));
    Listing 10 contains a version of better-cgi-search.pl with these additions and can be found in the archive file (see Resources).

    Is This Any Way to Run a Search?

    If you have already run these programs, you most likely found the main problem with the system outlined above: it is very slow. If your web site contains 100 files, this system works just fine. However, if your site expands to 1000 or 10,000 files, users will stop the search in the middle because it will take too long.

    For this reason, most serious search engines employ a different strategy, one which separates the searching into two different stages. In the first stage, an indexing program takes the files apart, keeping track of where they might be. A second program is then run as a search client, looking through the pregenerated index for matches.

    Next month, we will examine some ways of creating such indices, as well as how to look through them. Perhaps our simple search programs will not be able to complete with Glimpse and ht://Dig, but at least we will understand roughly how they work and what trade-offs are involved when writing search programs

    Friday, October 28, 2005

    Estúpidos hombres blancos

    Del Sur - Indice Archivos El Escribidor: "Estupidos hombres blancos"

    Watts RMS de sonido, como Watts PMPO.

    La estrategia de quien domina el tablero