Entradas

Mostrando las entradas de 2011

Corrector ortográfico en PHP y JavaScript

Hola. Hace poco estaba desarrollando un proyecto donde necesité de un corrector ortográfico que encontrará errores en párrafos en tiempo real, o no importaba con consultas al servidor, siempre está JQuery o MooTools. Encontré una opción, Pspell, corrector ortográfico para PHP, con el que puedes utilizar el diccionario GNU Aspell, si estás en un sistema GNU/Linux: http://php.net/manual/es/book.pspell.php , pero que al parecer no tiene más soporte. Utilizando sus funciones para indagar en el diccionario se puede lograr desarrollar un corrector ortográfico con PHP. Pero necesitaba algo que ya estuviese desarrollado, para no perder mucho tiempo. Buscando en la Web encontré otra opción: http://www.phpspellcheck.com , que se integra excelentemente a cualquier desarrollo en PHP y JavaScript. Según dice en la página, tiene una Versión trial de desarrollo que no expira, pero les recomiendo que lo bajen antes de que se vuelva completamente privado, porque con todas los módulos y funciones qu...

Sincronización con Rsync y SSH

     Si queremos hacer una sincronización con rsync usando ssh para proteger nuestros datos, usamos el comando:      Desde un directorio remoto a un directorio local:      rsync -avz -e ssh usuario@ip-remota:/directorio/remoto /directorio/local      Desde un directorio local a un directorio remoto:      rsync -avz -e ssh /directorio/local usuario@ip-remota:/directorio/remoto      Desde un directorio local a otro directorio local:      rsync -avz -e ssh /directorio/local1 /directorio/local2      Las opciones:      -a: Usar recursividad manteniendo los permisos.      -v: Mostrar los archivos o directorios que va pasando.      -z: Comprimir los datos para que la transferencia sea más rápida.      -e ssh: Utilzar ssh.      --del...

Instalar OSS4 y no morir en el intento

Hace unos días instalé OSS4 en mi Debian Squeeze para mejorar la calidad del sonido. Luego tuve problemas para reproducir música, o cualquier sonido en algunas aplicaciones como SMPlayer porque algunos módulos de ALSA todavía estaban corriendo al reiniciar el sistema. ALSA tiene compatibilidad con OSS pero no con OSS4. Después de buscar en foros y google, encontré una guía de cómo instalar OSS4 y devolverse sin quedarse en el camino. Como está en inglés y está hecha para instalarlo en Ubuntu 10.04, lo adapto a Debian Squeeze (que no es casi nada) y de una vez lo traduzco: http://yopensource.com/it/news/ubuntu-latest-news/9297-howto-install-oss4-in-ubuntu-1004-lucido-per-meglio-sound-di-qualita En una terminal, corre sudo dpkg-reconfigure linux-sound-base . Escoge OSS, esto, entre otras cosas, previenes que los módulos de ALSA sean cargados. Ahora reinicia. Hay (al menos) 3 formas de instalar OSS4: Instalar desde los repositorios de Debian: sudo apt-get install oss4-base oss4-...

Quanta 4

Para los que hemos desarrollado en Quanta y nos parece uno de los mejores editores Web, una guía de cómo instalarlo en Ubuntu (ya no hay soporte desde KDE 3.5):       http://www.ubuntu-es.org/node/141444 Pero hay un proyecto en curso para llevarlo a la versión 4:       http://nikosams.blogspot.com/2010/01/kdevelopquanta4-css-language-support.html       Plan de desarrollo:       http://techbase.kde.org/Projects/Quanta/Feature_Plan_4

Recuperé Grub2 desde la cónsola de rescate, sin CD-Live

Esto lo escribo porque acabo de perder casi toda la información de mi partición donde tenía /home, porque estaba redimensionando el disco, moviendo particiones, cambiando de lugar /boot... y se apagó la computadora :SSSS (no chinges jeje). Como no me dió tiempo de actualizar el gestor de arranque Grub2, al reiniciar la PC, obtuve este mensaje: No such partition grub rescue> Con el cursor en esta última línea de comandos para recuperar el Grub2. Me salió este mensaje porque al cambiar de partición a /boot y sin actualizar el grub2, este sigue buscando el kernel y el inird donde antes estaba /boot. Estaba en la peor de las situaciones (casi), porque no tenía una computadora de respaldo para buscar documentación sobre los comandos de la cóndola de Grub2; tenía imágenes ISO de Debian, Ubuntu y de como 8 distribuciones más, pero todas en el disco y sin poder acceder para quemarlas :(. Sabemos que no es fácil encontrar una distro en la farmacia de la esquina y no quería buscar u...

Compilando un kernel en Debian

Hace tiempo tuve que compilar un kernel 2.6 para poder instalar una tarjeta de red Marvell Yukon que trabajaba con Gigabits, para luego darme cuenta que sólo debía cambiar la versión del GCC para ajustarla a la versión del GCC con que fue compilado mi kernel... pero me quedó la experiencia al menos. En ese momento encontré una guía excelente de cómo compilar un Kernel a la Debian o derivados, aquí se la dejo: http://mogaal.com/articulos/kernel-a-la-debian.html

substr en Postgres 8.3

Hace un tiempo me tope con un problema: Hacer un substring en PostgreSQL 8.3. Ya que en las versiones anteriores de Postgres, 8.2 y 8.1, usan la función con el formato: select substr(campo, 1, 4) En la versión posterior, 8.3, esto ha cambiado y el formato es el siguiente: select substr(campo::text, 1, 4) Como lo pueden ver en esta pregunta hecha en la página de postgres, donde encontre la respuesta: http://archives.postgresql.org/pgsql-es-ayuda/2008-03/msg00510.php

Repositorio local Debian

Algunas veces que actualizamos los paquetes en Debian nos tardamos un poco menos que una eternidad, por el ancho de banda, porque en otra PC de la red están bajando videos y se congestiona la red, o inclusive algunas veces no podemos descargar nada porque no tenemos Internet. Entonces necesitamos un repositorio de paquetes local, para no tener que depender de estos factores. Con el comando  debmirror  se puede descargar un repositorio de paquetes Debian completo: (Actualizado, el anterior enlace ya no funciona): https://www.mankier.com/1/debmirror Para descargar este paquete usamos: SHELL # aptitude install debmirror debian-keyring Las opciones que usa debmirror , se las explico aquí: --host: Indica el host desde donde se descargarán los paquetes. --method:  Indica el método de descarga --root:  El nombre de carpeta raíz. -d:  Distribuciones a descargar. --arch:  Indica las arquitecturas de los paquetes a descargar. --section:  ...

Cómo firmar un repositorio

Simplemente ejecutamos el siguiente comando: SHELL # gpg --gen-key Nos hará una serie de preguntas, entre ellas nos pedira un passphrase, que será la clave privada. Más adelante necesitaremos importar la clave pública para usar el repositorio, la exportamos con el siguiente comando: SHELL # gpg -a --export > clave_publica.gpg Firma de los Release Ahora que ya poseemos una clave para firmar el repositorio tenemos que firmar los Release de cada uno de los directorios: SHELL # cd dists/lenny # gpg -bao Release.gpg Release # cd main/binary-i386 # gpg -bao Release.gpg Release # cd main/source # gpg -bao Release.gpg Release Esto nos pide el passphrase que introdujimos al generar la clave, y nos genera un fichero Release.gpg. Pues bien una vez hemos firmado todos los ficheros Release ya tenemos firmado el repositorio. Importando la clave pública Ahora lo único que nos falta es importar la clave pública exportada anteriormente en cada una de las máquinas que utiliz...

Exámen Java

Este Post lo hago a raíz de que me han preguntado varias veces cómo hacer el exámen de Java J2EE, para certificarse, luego de haber culminado el curso de Desarrolladores de Software en la Academia de FUNDACITE Zulia y obtenido el vaucher que le da derecho a presentar el exámen. Empecemos: Primero vé en tu vaucher qué prefijo tiene los exámenes a los que puedes optar. El prefijo puede ser 310-*** ó 311-***. Busca esos números en tu vaucher. Eso significa que cualquier exámen, cuyo código empiece por ese número, lo puedes presentar. Hay varios tipos de exámenes de Java J2EE. Para el que nos formaron en la Academia de Software Libre en el 2007 fue para el exámen 310-056 (versión 5.0 de Java J2EE). Pero ya para la promoción del 2010, supongo que ya los actualizaron para el 310-066 (que es la versión 6.0 de Java J2EE). Aquí te lo explica detallado: http://javierrguez.wordpress.com/2009/05/26/certificaciones-java-examenes/ Te recomiendo que presentes el exámen en inglés, porque prime...

OpenSSH

SSH es un protocolo de seguridad que se utiliza para enviar información de forma segura, protegidas por contraseña. La versión libre se llama OpenSSH. Para utilizarla en Debian, primero: DESDE EL SERVIDOR DESCARGAMOS E INSTALAMOS EL PAQUETE .DEB SHELL # aptitude install openssh-server CONFIGURAMOS         La configuración inicial de OpenSSH, es estándar, y si queremos real seguridad, deberíamos cambiar la configuración por defecto. Modificamos el archivo de configuración: SHELL # nano /etc/ssh/sshd_config         Dentro de este archivo modificamos las siguientes variables.         Cambiamos el puerto, que por defecto es 22 , por otro como por ejemplo 4321 : port 1234         Deshabilitamos que podamos conectarnos como root: PermitRootLogin no         Está establecido por defecto para conectarnos desde...

Enviar HREF vía POST con JavaScript

Quién no ha querido enviar el contenido de formulario vía POST con HREF??. Sabemos que sólo se puede con GET, pero hay una forma de hacerlo en JavaScript, cuando tenemos un formulario en método GET y lo queremos enviar por POST : /* Código en JavaScript*/ /* PRIMERA FUNCIÓN:   * Recorre el formulario, crea un arreglo con los campos y lo pasa a la función post   */ function enviarPost(URL, form) {   var campos = new Array();   var obj;   for(var i=0; i< document.getElementById(form).elements.length;i++){     obj = document.getElementById(form).elements[i];     alert(obj.value);     campos[obj.name] = obj.value;   }   post(URL, campos); } /*  SEGUNDA FUNCIÓN:  * Crea un formulario ficticio y lo envía por POST   */ function post(URL, PARAMS) {   var temp=document.createElement("form");   temp.action=URL; // Le ag...

Permitir sólo números en un campo de texto con JavaScript

Muchas veces queremos formatear un campo de texto en HTML con JavaScript, pero el navegador que usamos nos deja en mal, porque siempre hay un hueco que no nos permite escribir con el formato que deseamos. Aquí hay un ejemplo de cómo formatear un input en html, de tal forma que sólo permita escribir números y que sirve para muchos navegadores: /*Código en JavaScript*/ function numero(e) { var codigo;  codigo = (document.all) ? e.keyCode : e.which;  if (codigo > 31 && (codigo < 48 || codigo > 57)) { return false; } return true; } <!--Código en HTML--> <INPUT type="text" name="texto" onkeypress="return numero(event)">

Lytebox

Muchas veces queremos hacer efectos que sorprendan en nuestras páginas Web, como por ejemplo, que aparezca un pop up que muestre alguna imagen u otra página sin perder el contenido de la página que mostramos y con un agradable efecto visual. Uno de los plugins que sirve y bastante para este propósito es Lytebox. Es configurable y con muy buenos efectos. Esta es la página del proyecto:  http://dolem.com/lytebox/ Primero descargamos el paquete con el script en JavaScript lytebox.js y la hoja de estilo CSS lytebox.css . http://dolem.com/lytebox/lytebox_v3.22.zip Colocamos en el <head> los siguientes llamados, de esta forma: <head> <script type="text/javascript" language="javascript" src=" lytebox.js "></script> <link rel="stylesheet" href=" lytebox.css " type="text/css" media="screen"/> </head> Si no queremos descargar el paquete y usarlo remoto, en el llamado sólo cambian la...