mayo 20, 2008

Windows Vista - Configuración en Paralelo no es Correcta

Siguen los dolores de cabeza con Windows Vista. El siguiente error ocurrió al instalar OmniPage 16:

Error al iniciar la aplicación; la configuración en paralelo no es correcta. Consulte el registro de eventos de la aplicación para obtener más detalles.

El ir al registro de eventos no dice gran cosa para solucionar el problema así que por un chispazo se me ocurrió actualizar Windows.

Y después de actualizar Windows Vista, mágicamente se solucionó el error.

Suerte ¿no? ¿los dolores de cabeza seguirán?

mayo 16, 2008

Mozilla FireFox - Extensiones - Hyperwords


Hyperwords
http://www.hyperwords.net/



Cuando quieras traducir una palabra de un idioma a otro puedes hacerlo con un par de clics usando Hyperwords, un complemento para Mozilla Firefox que te ayudará con varias herramientas para tu continua navegación en la Web.

mayo 14, 2008

Mailman - Mucho Spam pendiente de moderar

Demasiado spam para Mailman


Al intentar moderar los mensajes pendientes de moderar no pude hacerlo con la interfaz web que mailman tiene para eso (http://localhost/mailman/admindb/lista) ya que dicha web se colgaba y nunca terminaba de generarse correctamente.

Pero, ¿de cuánto spam estamos hablando? Muy fácil:

root@server:/var/lib/mailman# du -h data/
540M data/

Afortunadamente Mailman ofrece scripts para esta tarea y podemos resolver el problema desde la linea de comandos:

root@server:/var/lib/mailman# find data -name heldmsg-NOMBRELISTA-* -print | xargs bin/discard

También puede estar en /var/mailman

Fuente:
http://www.lorenzogil.com/blog/2007/07/23/demasiado-spam-para-mailman/

mayo 13, 2008

Sendmail - /etc/aliases - newaliases

Siempre que se edita el archivo aliases en etc ( /etc/aliases ) siempre olvido que comando hay que teclear para que sendmail tome en cuenta los cambios, pues ese comando es newaliases

newaliases - reconstuye la base de datos del archivo de alias en /etc/aliases este comando debe de ejecutarse cada vez que se cambie el archivo para que los cambios tengan efecto.

Newaliases es lo mismo que ''sendmail -bi''

mayo 07, 2008

Windows Vista y Samba

Windows Vista y Samba

--
En Windows Vista Bussiness pasar Password sin encriptación

1. Ejecutar "secpol.msc"

2. Oprimir "continuar"

3. Dar clic en "Local Policies" --> "Security Options"

4. Buscar "Network Security: LAN Manager authentication level" y abrirlo.

5. Por omision Vista tiene configurada la politica de seguridad en "NTVLM2 responses only".
hay que cambiarla a "LM and NTLM – use NTLMV2 session security if negotiated".

Fuente: http://www.builderau.com.au/blogs/codemonkeybusiness/viewblogpost.htm?p=339270746

--


Windows Vista Home Premium y Samba pasar Password sin encriptación

- Ejecutar "regedit"

- A la izquierda expandir las carpetas: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

- A la izquierda dar clic en la carpeta con nombre: Lsa

- A la derecha dar doble clic en "LmCompatibilityLevel"

- Escribir el número: 1 y presionar

- Reiniciar la computadora


--

Windows Vista y XP con Samba pasar Password sin encriptación

Enable plain text passwords:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]
"EnablePlainTextPassword"=dword:00000001


Windows Client to join and logon to a Samba domain:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000

abril 23, 2008

PHP - MySQL - PHPfileNavigator

PHPfileNavigator es una aplicación escrita para ocupar PHP y MySQL para la administración remota de archivos.

Su sitio oficial es : http://pfn.sourceforge.net

Es software libre, pero si te sirve haz una donación.

Puedes usar una demostración en la siguiente dirección.
http://www.litoweb.net/pfn2/

abril 22, 2008

Mailman - desde linea de comandos

para crear una nueva lista usaremos el comando
"newlist nombre"
para borrar una lista "rmlist nombre"
para ver las listas creadas "list_lists"

si no esta en las variables de entorno ubicar el directorio
donde estan los archivos

Windows 2000 Error Pantalla Azul INACCESSIBLE_BOOT_DEVICE

***STOP: 0x0000007B (0xFCDDC030,0xC0000032,0x00000000,0x00000000)
INACCESSIBLE_BOOT_DEVICE

Pues después de darle muchas vueltas y leer la ayuda de Microsoft aunque no me ayudó en nada me dió la idea de usar el CD de instalación de Windows 2000.

1. Es posible que tenga que cambiar la configuración del BIOS para poder iniciar el equipo desde la unidad de CD-ROM o DVD-ROM. Para obtener más información acerca de cómo configurar el equipo para que se inicie desde la unidad de CD-ROM o DVD-ROM, consulte la documentación del equipo o póngase en contacto con su fabricante.
3. Presione R para reparar una instalación de Windows 2000.
4. Presione C para utilizar la consola de recuperación.
5. Escriba el número correspondiente a la instalación de Windows 2000 que desea reparar y, cuando se le pida, escriba la contraseña del administrador.
6. En el símbolo de sistema, escriba cd system32\drivers y después presione ENTRAR.
7. FIXBOOT

Listo!!! Funcionó!!!

abril 17, 2008

Windows XP - Desinstalar Notificaciones de Ventajas de Microsoft Windows Original

Cómo deshabilitar o desinstalar la versión piloto de Notificaciones de Ventajas de Microsoft Windows Original

Version Corta
Lauch Windows Task Manager.
End wgatray.exe process in Task Manager.
Restart Windows XP in Safe Mode.
Delete WgaTray.exe from c:\Windows\System32.
Delete WgaTray.exe from c:\Windows\System32\dllcache.
Lauch RegEdit.
Browse to the following location:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\Winlogon\Notify
Delete the folder ‘WgaLogon’ and all its contents
Reboot Windows XP.

En el sitio de soporte de Microsoft dan las instrucciones
http://support.microsoft.com/kb/921914/


Importante: este artículo contiene información acerca de cómo modificar el Registro. Antes de modificar el Registro, asegúrese de hacer una copia de seguridad del mismo y de que sabe cómo restaurarlo si se produce algún problema. Para obtener más información acerca de cómo realizar una copia de seguridad, restaurar y modificar el Registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
256986 (http://support.microsoft.com/kb/256986/) Definición del Registro de Microsoft Windows
En esta página

INTRODUCCIÓN

Más información

Deshabilitar Notificaciones WGA

Desinstalar manualmente Notificaciones WGA
INTRODUCCIÓN
Este artículo se aplica a la versión de Notificaciones de Ventajas de Microsoft Windows Original (WGA) que se distribuyó durante el programa piloto. Por ejemplo, esta versión está incluida en la versión previa al lanzamiento que acompaña a los términos de la Licencia de software de Microsoft. Para desinstalar con seguridad y facilidad la versión piloto, debe instalar la versión general de Notificaciones WGA. Si no instala esta versión, siga los pasos de este artículo para deshabilitar o desinstalar la versión piloto.

Importante: estas instrucciones no han sido comprobadas en la versión general de Notificaciones WGA. Por tanto, no se ofrece soporte técnico sobre ellas. Microsoft ofrecerá la versión general de Notificaciones WGA a los usuarios que desinstalen la versión piloto en una fecha posterior. Esos usuarios obtendrán la versión general mediante el servicio Actualizaciones automáticas de Microsoft. Notificaciones WGA forma parte del programa Ventajas de Windows Original (WGA).

Cuando usa una versión de Windows que no es original, al iniciar sesión recibe un mensaje que le indica que la copia de Windows no parece ser auténtica. Después se le dirige al sitio Web de WGA, para obtener más información. Si no desea obtener una copia original de Windows, recibe mensajes periódicos que le notifican que copia de Windows no parece ser original.

Nota: si está ejecutando una copia original de Windows y desea usar Notificaciones WGA, puede recibir mensajes para actualizar Windows XP.

Con independencia de que sea o no original, no se niega a los usuarios el acceso a las actualizaciones críticas. Sin embargo, los usuarios que no han validado sus equipos como originales no pueden instalar otras actualizaciones, como las destinadas a Windows Internet Explorer 7 y Microsoft Windows Defender.
Volver al principio

Más información
Advertencia: pueden producirse problemas graves si modifica incorrectamente el Registro mediante el Editor del Registro o con cualquier otro método. Estos problemas pueden requerir que reinstale el sistema operativo. Microsoft no puede garantizar la solución de esos problemas. Modifique el Registro bajo su responsabilidad.
Volver al principio

Deshabilitar Notificaciones WGA
1. Inicie sesión en el equipo con una cuenta que tenga permisos administrativos.
2. Compruebe que la versión de Notificaciones WGA que existe en el equipo es una versión piloto. La versión piloto es la 1.5.0532.x. En este caso, solamente puede desinstalar las versiones 527-532. Por ejemplo, puede desinstalar las versiones que van de la 1.5.0527.0 a la 1.5.0532.2. Para encontrar la versión de Notificaciones WGA, siga estos pasos. a. Haga clic en Inicio y, después, en Panel de control.
b. Haga doble clic en Agregar o quitar programas, haga clic en Windows XP - actualizaciones de software, haga clic en Windows Genuine Advantage Notifications y, después, haga clic en Haga clic aquí para obtener información de soporte.
c. En el cuadro de diálogo Información de soporte, compruebe el número de versión y haga clic en Cerrar.

3. Cambie el nombre de los archivos siguientes cambiando la extensión a .old: • Cambie el nombre de %Windir%\system32\WgaLogon.dll por el de %Windir%\system32\WgaLogon.old
• Cambie el nombre de %Windir%\system32\WgaTray.exe por el de %Windir%\system32\WgaTray.old

4. Reinicie el equipo.

Volver al principio

Desinstalar manualmente Notificaciones WGA
1. Inicie sesión en el equipo con una cuenta que tenga permisos administrativos.
2. Compruebe que la versión de Notificaciones WGA que existe en el equipo es una versión piloto. La versión piloto es la 1.5.0532.x. En este caso, solamente puede desinstalar las versiones 527-532. Por ejemplo, usted puede desinstalar las versiones que van de la 1.5.0527.0 a la 1.5.0532.2. Para encontrar la versión de Notificaciones WGA, siga estos pasos: a. Haga clic en Inicio y, después, en Panel de control.
b. Haga doble clic en Agregar o quitar programas, haga clic en Windows XP - actualizaciones de software, haga clic en Windows Genuine Advantage Notifications y, después, haga clic en Haga clic aquí para obtener información de soporte.

Nota: si Windows Genuine Advantage Notifications no aparece, está instalad la versión de lanzamiento. No puede desinstalar la versión de lanzamiento de WGA Notifications.
c. En el cuadro de diálogo Información de soporte, compruebe el número de versión y haga clic en Cerrar.

3. Cambie el nombre de los archivos siguientes cambiando la extensión a .old: • Cambie el nombre de %Windir%\system32\WgaLogon.dll por el de %Windir%\system32\WgaLogon.old
• Cambie el nombre de %Windir%\system32\WgaTray.exe por el de %Windir%\system32\WgaTray.old

4. Reinicie el equipo.
5. Quite del Registro LegitCheckControl.dll utilizando Regsvr32. Para ello, siga estos pasos: a. Haga clic en Inicio y en Ejecutar, escriba cmd y haga clic en Aceptar.
b. En el símbolo del sistema, escriba lo siguiente y presione ENTRAR:
Regsvr32 %Windir%\system32\LegitCheckControl.dll /u

6. Reinicie el equipo.
7. Haga clic en Inicio y en Ejecutar, escriba cmd y haga clic en Aceptar.
8. En el símbolo del sistema, elimine los archivos siguientes escribiendo el comando Del . Presione ENTRAR después de cada comando. • Del %Windir%\system32\wgalogon.old
• Del %Windir%\system32\WgaTray.old
• Del %Windir%\system32\LegitCheckControl.dll

9. En el símbolo del sistema, escriba regedit.
10. Busque la siguientes subclaves del Registro y haga clic con el botón secundario del mouse (ratón) en ellas. Haga clic en Eliminar después de buscar cada subclave. • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\ CurrentVersion\Winlogon\Notify\WgaLogon
• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Uninstall\WgaNotify


Para más referencias ver el sitio
http://www.mydigitallife.info/2006/04/26/disable-and-remove-windows-genuine-advantage-notifications-nag-screen/




Para más información consultar http://www.mydigitallife.info/2006/11/05/ways-to-crack-and-disable-wga-validation-tool-and-wga-notifications-plus-download-and-install-bypassing-genuine-windows-validate-requirement/

abril 10, 2008

Mozilla FireFox - Extensiones - Web Developer

Si eres diseñador de páginas Web este utilería te servirá mucho.

Web Developer es una extensión para Mozilla Firefox, Flock y Seamonkey que corre en plataformas Windows, Mac OS X y Linux.

Puede descargarse desde el sitio del desarrollador en
http://chrispederick.com/work/web-developer/ o desde el sitio de complementos de Mozilla en https://addons.mozilla.org/es-ES/firefox/addon/60








abril 09, 2008

Webmaster - Documentación de código

Versión corta


Usando  /* */

/**

* @file_name     - archivo.php

* @function_name - nombre de la función
*
* @short_description - descripción breve de la función o del archivo
* @full_description  - descripción de la función o del archivo
*
* @param1 string descripción

* @param2 int    descripción
*
* @return valor que regresa [string, array, int]
*
* @version 1
* @date begin 10/Abr/2008
* @date update 1/Feb/2009

*
* @author [ richard_site@dominio.com | www.richardsite.com.mx ]
*/


Usando //

// -----------------------------------------------------------
// descripción de la función o del archivo

// -----------------------------------------------------------
// @file archivo.php
// @param string
// @return valor que regresa [string, array, int]
// @version 1
// @author richard_site@
email.com
// -----------------------------------------------------------



¿Qué documentar?

  • La breve descripción.
  • La implementación.
  • La toma de decisiones.

La breve descripción

  • Qué hace una función (no como lo hace).
  • Qué hace un método de una clase.
  • Qué parámetros hay que pasar.
  • Qué devuelve.
  • Ejemplo de uso.

A quién va dirigida: Esta información es útil para las personas que utilizan funciones o clases diseñadas por otros.

La implementación


  • Dentro de una función, cómo se lleva a cabo cada paso.
  • Por qué se utiliza esta variable y no aquella.
  • Qué algoritmo se utiliza.
  • Qué hacen los métodos privados de una clase.
A quién va dirigida: Esta información sólo interesa a las personas que necesiten depurar o actualizar el bloque de código.

La toma de decisiones


  • Por qué se ha implementado de una determinada forma y no de otra




    • por razones de rendimiento
    • por optimización de recursos


Normalmente la información sobre la implementación no necesita salir del código.
A quién va dirigida: Esta información interesa tanto a nivel de implementación (desarrollador) como a nivel funcional (responsable de desarrollo).

Por el contrario, la información de la breve descripción conviene pasarla a un documento independiente del código fuente (manual de uso). La persona que necesite utilizar una determinada librería de clases o funciones tendrá toda la información necesaria: qué hace cada elemento y cómo se utiliza. No necesita acceder al código fuente.

El problema con este tipo de documentación es que cada vez que se modifica algo en el código (actualizaciones, corrección de errores, etc…) hay que reflejarlo también en el manual de uso… doble trabajo.

Lo ideal por tanto sería poder automatizar de alguna forma este proceso.

Herramientas para documentar


Existen algunas herramientas que permiten generar documentación de forma automática a partir del código fuente.

Java


Javadoc es la herramienta estándar en Java.

PHP


Para PHP una de las herramientas más utilizadas es phpDocumentor (www.phpdoc.org).

DocBlock


En phpDocumentor la documentación se distribuye en bloques DocBlock. Estos bloques siempre se colocan justo antes del elemento al que documentan y su formato es:


/**
* Descripción breve (una línea)
*
* Descripción extensa. Todas las líneas que
* sean necesarias
* Todas las líneas comienzan con *
<- Esta línea es ignorada * * Este DocBlock documenta la función suma() */ function suma() { … }


Los elementos que pueden ser documentados son:
  • define
  • function
  • class
  • class vars
  • include
  • require
  • include_once
  • require_once
  • global variables


Además se puede incluir documentación globlal a nivel de fichero y clase mediante la marca @package

Marcas (tags)


Dentro de un bloque DocBlock se pueden incluir marcas que serán interpretadas por phpDocumentor de forma especial.

Hay una serie de marcas estándar que pueden ir dentro de todos los DocBlock:
MarcaSignificado
@accessSi @access es ‘private’ no se genera documentación para el elemento (a menos que se indique explícitamente). Muy interesante si sólo se desea generar documentación sobre la interfaz (métodos públicos) pero no sobre la implementación (métodos privados).
@authorAutor del código
@copyrightInformación sobre derechos
@deprecatedPara indicar que el elemento no debería utilizarse, ya que en futuras versiones podría no estar disponible.
@examplePermite especificar la ruta hasta un fichero con código PHP. phpDocumentor se encarga de mostrar el código resaltado (syntax-highlighted).
@ignoreEvita que phpDocumentor documente un determinado elemento.
@internal inline {@internal}Para incluir información que no debería aparecer en la documentación pública, pero sí puede estar disponible como documentación interna para desarrolladores.
@link inline {@link}Para incluir un enlace (http://…) a un determinado recurso.
@seeSe utiliza para crear enlaces internos (enlaces a la documentación de un elemento).
@sincePermite indicar que el elemento está disponible desde una determinada versión del paquete o distribución.
@versionVersión actual del elemento


Ejemplo:


/**
* Emilious Sender (class worker) :)
*
* Envio de emails (MIME - multipart)
*
* Codificacion de mensajes segun RFC-822
* Utiliza la especificacion mime
* Permite enviar ficheros adjuntos utilizando
* Permite el envio a multiples destinatarios
*
* @author Enrique Fernandez-Perera [Epsilon Eridani]
* @author http://www.epsilon-eridani.com
*
* @package Emilious_Sender
*/
class Emilious_Sender
{
//// aqui la implementacion de la clase
}


Y existen otras marcas que sólo se pueden incluir en los bloques de determinados elementos:

Declaración de funciones (elemento function)
Marca Significado
@global Permite especificar el uso de variables globales dentro de la función.
@param

Parámetros que recibe la función. Formato:
* @param tipo $nombre_var comentario
@return Valor devuelto por la función. Formato:
* @return tipo comentario

NOTA: Tipos de datos en PHP (para indicar en @param, @return, etc…):

array
string
boolean
integer
float
object
mixed

Ejemplo:

/**
* Verifica si una direccion de correo es correcta o no.
*
* @return boolean true si la direccion es correcta
* @param string $email direccion de correo
*/
function check_dir_email ($email)
{
….
}

Ejemplo de documentación de un método privado (la documentación no aparecerá a menos que se especifique de forma explícita):

/**
* localiza las imagenes dentro del contenido
*
* @access private
* @param string $dir_imagenes path al directorio de imagenes
*/
function encuentra_html_imagenes($dir_imagenes)
{
….
}

Ejemplo de un comentario interno, @internal, que no aparecerá en la documentación de interfaz (documentación pública).

/**
* cuerpo del mensaje
*
* Para mandar texto HTML, $body tiene que ser un array
* de la forma (es preferible utilizar body_html()):
* $body[’html’] = $texto_html;
* $body[’texto’] = $texto_plano; (opcional)
* $body[’dir_imagenes’] = $dir_imagenes; (opcional)
*
* @internal Si $this->body_con_html==true el valor de $ctype no se tiene en cuenta.
*
* @param mixed $body contenido del mensaje
* @param string $ctype (opcional) mime-type del contenido (text/plain si es texto)
* @param string $charset (opcional)
*/
function body($body, $ctype=”", $charset=”")
{

Variables de clase (atributos)
Marca Significado
@var Documenta los atributos de la clase. Formato:
* @var tipo comentario

Ejemplo:

/**
* array de destinatarios del mensaje
* @var array destinatarios
* @access private
*/
var $to;



Generar la documentación

phpDocumentor permite generar la documentación de varias formas y en varios formatos.

Opciones para generar documentación:

1. Desde línea de comandos (php CLI - Command Line Interpreter)
2. Desde interfaz web (incluida en la distribución)
3. Desde código. Como phpDocumentor está desarrollado en PHP, podemos incluir su funcionalidad dentro de scritps propios.

¿Qué hay que especificar?

1. El directorio en el que se encuentra nuestro código. phpDocumentor se encarga de recorrer los subdirectorios de forma automática
2. Opcionalmente los paquetes (@pakage) que deseamos documentar, lista de ficheros incluidos y/o excluidos y otras opciones interesantes para personalizar la documentación.
3. El directorio en el que se generará la documentación
4. Si la documentación va a ser pública (sólo interfaz) o interna (en este caso aparecerán los bloques private y los comentarios @internal).
5. El formato de salida de la documentación

Formatos de salida

1. HTML a través de un buen número de plantillas predefinidas (podemos definir nuestra propia plantilla de salida)
2. PDF
3. XML (DocBook). Muy interesante puesto que a partir de este dialecto podemos transformar (XSLT) a cualquier otro utilizando nuestras propias reglas y hojas de estilo.



Más información sobre phpDocumentor

En este artículo sólo se han incluido algunas pinceladas sobre esta herramienta. Para saber más puedes echar un vistazo en www.phpdoc.org


Javascript - Combobox - Abrir en una nueva ventana un URL usando <select></select>

Para abrir un URL en una nueva ventana usando un Combobox se usa el siguiente código:

<select size="4" onclick="window.open(this.options[this.selectedIndex].value,'_blank')}">
<option value="http://www.yahoo.com">Yahoo</option>
<option value="http://www.google.com">Google</option>
<option value="http://www.altavista.com">Altavista</option>
<option value="http://www.busca7.com/pro/">Busca7</option>
</select>


Ejemplo:







abril 08, 2008

Webmaster - Javascript - Combobox - Redireccionarse a un URL <select></select>

Para redireccionarse a un URL usando un Combobox se usa el siguiente código:

<select size="4" onclick="if(options[selectedIndex].value){location = options[selectedIndex].value}">
<option value="http://www.yahoo.com">Yahoo</option>
<option value="http://www.google.com">Google</option>
<option value="http://www.altavista.com">Altavista</option>
<option value="http://www.busca7.com/pro/">Busca7</option>
</select>


Ejemplo:







Se ha producido un error en este gadget.