29 mayo 2006

Javascript: mostrar fecha con idioma automático

Insertamos el siguiente script en el HTML:

<script type="text/javascript" language="javascript" src="http://etatus.googlepages.com/fecha.js"></script>

Y luego donde queramos mostramos la fecha:

<script type="text/javascript">document.write(Fecha());</script>

Codigo fuente: http://etatus.googlepages.com/fecha.js

22 mayo 2006

JavaScript: pasar parámetros a un pop-up

Cuando abrimos una ventana hija (popup) con JavaScript mediante window.open, es posible que ésta acceda a la página padre mediante opener. Un ejemplo:

Página padre.html:

<HTML><HEAD><TITLE>Padre</TITLE></HEAD>
<BODY>
<FORM name="form">
<INPUT type="hidden" name="nombre" value="PAPA">
<SCRIPT language="javascript">
window.open('hija.html','hija');
</SCRIPT>
</BODY></HTML>

Página hija.html:
<HTML><HEAD><TITLE>Hija</TITLE></HEAD>
<BODY>
<SCRIPT language="javascript">
//Leer un valor
document.write('Nombre: '+window.opener.document.form.nombre.value);
//Cambiar un valor
window.opener.document.form.nombre.value="MAMA";
</SCRIPT>
</BODY></HTML>

Enlace relacionado:
http://www.desarrolloweb.com/articulos/609.php

05 mayo 2006

Problemas compartir archivos y carpetas en XP

Parece ser que el SP2 y las nuevas actualizaciones de Windows XP provocan un aumento en la seguridad que impide en algunos casos el acceso a los recursos compartidos de un PC a otro dentro de la misma red local. He encontrado en algunos foros varias posibles soluciones.

En primer lugar unos requisitos que solucionaron el problema en bastantes casos:

  1. Todos los usuarios deben logearse con nombre y contraseña en sus respectivos equipos al iniciar sesion (imprescindible).
  2. Todos los usuarios deben estar dados de alta en el resto de equipos con el mismo nombre y contraseña con el que inician sesion en sus respectivos equipos (imprescindible).
  3. El grupo de trabajo debe llamarse igual en los equipos de la red.
  4. La direcccion IP tienen que pertenecer al mismo rango y la máscara debe ser la misma.
  5. Ningún usuario puede denominarse igual que un equipo de la red.
  6. Debe estar desmarcada la opción (version Pro de XP) de "uso compartido simple de archivos": [Panel de control > Opciones de carpeta > pestaña Ver], y desmarcar la casilla correspondiente "Utilizar uso compartido simple de archivos (recomendado)"
  7. Debe estar marcada la opción de Clientes para redes MS y Compartir Impresoras y archivos para redes MS.
Otra alternativa:
  1. Desmarcar la opción (versión Pro de XP) de "uso compartido simple de archivos" (igual que pone arriba).
  2. Quitar todas las carpetas y recursos que estén compartidos.
  3. Reiniciar.
  4. Volver a marcar la casilla de "uso compartido simple de archivos"
  5. Seleccionar de nuevo carpetas a compartir.

03 mayo 2006

Recuperar fichero borrado en linux

Si eliminamos accidentalmente un fichero en linux con rm es bastante complicado recuperarlo. Existen algunas opciones sobre todo si se trata de un fichero de texto o un código fuente de un programa. Una posibilidad es utilizar grep tal como se muestra en el ejemplo:

grep -a -B 40 -A 80 texto_exclusivo_del_fichero /dev/hda3

Donde texto_exclusivo_del_fichero es un texto que aparecía en el fichero y que es poco probable que aparezca en otros, 40 es el número de líneas que se mostrarán antes del texto y 80 el número de líneas que se mostrarán después. /dev/hda3 es el dispositivo (disco) donde estaba el fichero.

El comando buscará el texto en todo el dispositivo indicado mostrando cualquier ocurrencia del mismo. Sería deseable conocer el número de líneas del fichero para poder ajustar el número de líneas antes y después.

Si queremos meter lo recuperado en un fichero en lugar de que salga por pantalla añadiremos al final:

... _del_fichero /dev/dha3 > recuperado.txt

Nota: es necesario ejecutar el comando con permisos de root para poder acceder al dispositivo.

Enlace relacionado: http://elenya.net/trabajos/minirecetasgnulinux.html

27 abril 2006

Códigos de error HTTP

400 Bad Request -> Solicitud incorrecta
401 Unathorized -> No autorizado
402 Payment Required -> Pago requerido
403 Forbidden/Access Required -> Prohibido / Acceso requerido
404 Not Found -> No encontrado
405 Method Not Allowed -> Método no permitido
406 Method Not Acceptable -> Método no aceptable
407 Proxy Auth Required -> Se requiere autorización del proxy
408 Request Timeout -> Tiempo de solicitud agotado
409 Conflict -> Conflicto
410 Document Removed -> Documento eliminado
411 Lenght Required ? -> Se necesita determinada cantidad de datos
412 Precondition Failed -> Falló la precondición
413 Request Entity Too Large -> Solicitud demasiado grande
414 Request URL Too Large -> URL solicitado demasiado largo
415 Unsupported Media Type -> Medio no soportado
500 Internal Server Error -> Error interno del servidor
501 Not Implemented -> Función no implementada
502 Bad Gateway -> Puerta "inaccesible"
503 Service Unavailable -> Servicio no disponible

Definiciones extendidas (y picantes)

25 abril 2006

Cambiar puerto escritorio remoto en XP

Si tenemos algún tipo de limitación en nuestra red sobre el puerto por defecto del escritorio remoto (3389), podemos cambiarlo por otro editando el registro:

  1. En [Inicio > Ejecutar] escribimos regedit y pulsamos Aceptar.
  2. Vamos a la clave de registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\
    TerminalServer\WinStations\RDP-Tcp\PortNumber
  3. En el menú [Edición>Modificar], seleccionamos Decimal, escribimos el nuevo número de puerto y pulsamos Aceptar.
Nota: Si no tenemos ningún servidor web ni FTP, podemos utilizar el puerto 80 o 21 que seguro que no dará ningún problema ante cualquier firewall o router.

Enlace relacionado: http://support.microsoft.com/default.aspx?scid=kb%3Bes%3B306759

30 marzo 2006

Insertar multimedia en HTML

Si deseamos incrustar o "embedir" un fichero multimedia de audio, video o streaming en nuestra web, podemos utilizar este código HTML basado en el reproductor Windows Media Player que funciona tanto para Internet Explorer como para Firefox (siempre que estén instalados los correspondientes plugins):

<object width="300" height="45" id="MediaPlayer" classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"
standby="Loading Windows Media Player components..."
type="application/x-oleobject"
codebase="http://activex.microsoft.com/activex/controls/mplayer
/en/nsmp2inf.cab#Version=6,4,7,1112
">

<param name="filename" value="http://server.com/fichero.mp3">
<param name="Showcontrols" value="True">
<param name="autoStart" value="False">

<embed autostart="0" type="application/x-mplayer2" width="300" height="45" src="http://server.com/fichero.mp3" name="MediaPlayer">
</embed>

</object>


Resultado:


Nota 1: para los ficheros de video se debe poner una altura mayor de 45 pixels, si no sólo se visualizarán los botones.

Nota 2: para que el parámetro "autostart" funcione correctamente en Firefox se debe utilizar "0" en lugar de "false" y "1" en lugar de "true".

Enlaces interesantes donde se describen todos los parámetros posibles:

27 marzo 2006

Flash con fondo transparente

Si deseamos que nuestra animación Flash aparezca con el fondo transparente dentro de una página HTML, debemos añadir el parámetro wmode en el código fuente tanto para Internet Explorer (OBJECT - PARAM) como para Netscape y Firefox (EMBED). El siguiente ejemplo muestra el código válido para ambos:


<OBJECT>

<PARAM NAME=movie VALUE=animacion.swf>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=wmode VALUE=transparent>

<EMBED wmode=transparent src=animacion.swf quality=high>
</OBJECT>

15 marzo 2006

Programar apagado en XP

Para programar el apagado de Windows XP podemos utilizar el Programador de Tareas y el comando shutdown -s:

  1. Iniciamos el programador de tareas desde [Panel de Control > Tareas Programadas > Agregar Tarea Programada
  2. Cuando se pregunte el progama a ejecutar, hacemos click en [Examinar...] y seleccionamos 'C:\Windows\System32\shutdown.exe'.
  3. Configuramos cuando queremos que se apague el equipo e introducimos la contraseña del usuario
  4. Marcamos la casilla 'Abrir propiedades avanzadas de esta tarea cuando haga click en Finalizar' y pulsamos [Finalizar].
  5. En la pestaña Tarea añadimos -s dentro de la casilla Ejecutar: 'C:\Windows\System32\shutdown.exe -s', aceptamos y volvemos a escribir la contraseña.
Otra forma es utilizar directamente el comando shutdown desde [Inicio > Ejecutar...]. Por ejemplo:

shutdown -s -t 200 -f

Para que se apague (-s) en 200 segundos forzando el cierre de las aplicaciones (-f).

Para anular un apagado programado podemos ejecutar:

shutdown -a

Nota: Si queremos reiniciar en lugar de apagar cambiamos -s por -r.

24 febrero 2006

Apagado Remoto de XP

Si nos conectamos a un equipo mediante una Conexión a Escritorio remoto y queremos apagar ese equipo, podemos crear un fichero denominado ApagadoRemoto.js que contenga el texto:

(new ActiveXObject("Shell.Application")).ShutdownWindows();

Haciendo doble click sobre él aparecerá el dialogo de apagado de windows.

Ver también: Programar apagado en XP

20 febrero 2006

Mostrar siempre el final de un textarea o div

Si estamos trabajando con HTML y tenemos un TEXTAREA o un DIV con más información de la que cabe en la zona visible, nos aparecerá un scrollbar (en el DIV debemos poner el estilo apropiado: style="overflow: auto"). Pero si queremos que el texto que aparezca por defecto sea el del final (por ejemplo un chat), podemos utilizar esta sencilla instrucción javascript:

<script language="javascript">
//Textarea:
form.textarea_name.scrollTop = form.textarea_name.scrollHeight;
//Div:
document.getElementById("div_id").scrollTop=document.getElementById("div_id").scrollHeight;
</script>

Una buena idea puede ser poner la instrucción en la etiqueta body para que se ejecute al terminar de cargar la página y asegurar así que siempre aparezca el final del texto del textarea:
<body onLoad="form.textarea_name.scrollTop = form.textarea_name.scrollHeight;">

En el caso de Java podemos hacer:
area.append(text+"\n"); // en el JTextArea
scroll.getVerticalScrollBar().setValue(scroll.getVerticalScrollBar().getMaximum());
// scroll es JScrollPane

Nota: Si no se queda el scroll abajo sino por el medio, se puede repetir la instrucción dos veces para asegurar que se actualiza correctamente.

18 febrero 2006

Contraseña para impresora compartida

Cuando se comparte una impresora en XP parece ser que por defecto no deja establecer una contraseña de acceso. Para poder proteger este recurso podemos hacer lo siguiente:

  1. Abrimos el explorador de archivos de windows (o abrimos cualquier carpeta) y vamos al menú Herramientas > Opciones de carpeta... > pestaña Ver
  2. Entre todas las opciones desmarcamos la casilla que corresponde a: Utilizar uso compartido simple de archivos
  3. Vamos a [Inicio > Impresoras y faxes] y con el botón derecho sobre la impresora a compartir elegimos Propiedades.
  4. Ahora nos aparece una nueva pestaña: Seguridad. Seleccionamos esa pestaña y en el nombre de grupo Todos desmarcamos Permitir.
  5. Luego podemos pulsar Agregar > Avanzadas > Buscar ahora y seleccionar un usuario (con contraseña) para permitirle el acceso.
  6. Si desde otro equipo quieren utilizar esa impresora deben agregar una nueva impresora en red (\\nombre_equipo\nombre_impresora) e introducir el nombre de usuario y la contraseña del usuario al que se le permitió el acceso.
Nota: Este procedemento también sirve para dar permisos específicos a determinadas carpetas, puesto que también va a aparecer la pestaña Seguridad.

25 enero 2006

Login automático en XP

¿Estás cansado de tener que decirle a tu XP que inicie la sesión con tu nombre de usuario cada vez que arranca el sistema?

Sigue estos pasos y te librarás de este proceso intermedio:

1. Ve a Inicio / Ejecutar y escribe: control userpasswords2
2. Selecciona el usuario que quieres que haga login automático y desmarca la casilla "Los usuarios deben escribir su nombre y contraseña para usar el equipo".
3. Pulsa Aceptar.
4. Te pedirá la clave del usuario, introdúcela si procede.
5. Pulsa Aceptar.

Al siguiente reinicio hará el login automáticamente sin consultar.

13 enero 2006

Escritorio remoto con router

Si tenemos una conexión ADSL mediante router y queremos utilizar el escritorio remoto para acceder a nuestro equipo desde otro, debemos marcar en [Inicio>Panel de Control>Sistema], pestaña remoto: 'Permitir que los usuarios se conecten de manera remota a este equipo' y luego en el router añadir una entrada NAT donde cualquier dirección externa a través del puerto TCP (UDP) 3389 se diriga a nuestra IP interna (generalmente 192.168.0.1) también al puerto 3389.

Instrucciones detalladas: http://www.elguille.info/sistema/escritorioremoto.htm

09 enero 2006

Encontrar comando en Linux

A veces sabemos el nombre de un comando que queremos ejecutar en Linux, pero no se encuentra en el PATH y desconocemos su ubicación. Para poder averiguar la ruta del ejecutable, el código fuente e incluso el fichero del manual asociado, podemos usar el comando whereis.

Ejemplo:
>whereis tar
tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz

02 enero 2006

Acceso a carpeta protegida en otro HD

Si ponemos un segundo disco duro que tiene una instalación de windows de la que queremos recuperar información, puede ocurrir que nos aparezca el mensaje 'Acceso denegado' al tratar de abrir alguna de las carpetas de los usuarios de la instalación que tenía dicho disco duro. Para evitar esto debemos cambiar el propietario de dicha carpeta.

  1. Habilitamos la opción que nos permite visualizar las propiedades avanzadas de seguridad en las carpetas: en [Inicio > Panel Control > Menú 'Herramientas' > Opciones de carpeta... > Pestaña Ver] desmarcamos la última opción que dice: 'Utilizar uso compartido simple de archivos'
  2. Ahora hay que selecionar la carpeta a la cual no tenemos acceso y con el botón derecho vamos a 'Propiedades', selecionamos la pestaña 'Seguridad', pulsamos en [Opciones avanzadas] y en la pestaña Propietario debemos seleccionar el nuevo usuario.
  3. Volvemos a la pestaña 'Seguridad' y agregamos el nuevo usuario o los usuarios que queremos autorizar para acceder a la carpeta. Para ello hacemos clic en [Avanzadas], luego en [Buscar ahora] y ahí seleccionamos los usuarios que queramos.

Foro relacionado: www.trucoswindows.net

25 diciembre 2005

Guardar configuración cuentas Outlook 2002/2003

Parece que en las nuevas versiones de Outlook no existe una opción para importar/exportar las cuentas de correo, con lo cual, cuando reinstalamos, debemos volver a crear las cuentas una a una.

Pero esa información se puede localizar en el registro [Inicio>Ejecutar...> regedit], concretamente:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem

Dentro de esta rama se encuentra otra, Profiles y dentro de ella tantas como perfiles tengamos configurados.

El original que crea Outlook se llama Microsoft Outlook Internet Settings o simplemente Outlook, por tanto:
...\Windows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settings
ó
...\Windows Messaging Subsystem\Profiles\Outlook

Dentro cuelgan varias subclaves numéricas, la que nos interesa es:
...\Profiles\Microsoft Outlook Internet Settings\9375CFF0413111d3B88A00104B2A6676
ó
...\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676

Una vez localizada dicha rama, nos posicionamos sobre ella, y en menú Archivo le damos a Exportar.

Para restaurar las cuentas tras una reinstalación debemos tener el mismo perfil (si lo dejamos todo por defecto no habrá que hacer nada) , ir a la misma clave desde la que exportamos, luego vamos a [Archivo>Importar...] y escogemos el archivo .reg que habíamos creado para cargar los valores en el registro.

Importante: Cuando se haga esto último se configurarán todas las cuentas pero deberemos introducir manualmente las contraseñas de cada cuenta. Es el único dato que no se exporta.

Enlace relacionado: http://www.infonegocio.com/luzylar/cuentasoutlook2003.htm

26 noviembre 2005

Eliminar el Windows Messenger

Si el Windows trae por defecto instalado el Windows Messenger y queremos deshacernos de él para que no nos interfiera con el MSN Messenger, lo primero es desinstalarlo desde [Panel de control > Agregar Quitar Programas > Componentes de Windows] y después desactivamos el servicio:

  1. [Inicio > Ejecutar...] y escribimos gpedit.msc
  2. Vamos a [Configuración del equipo > Plantillas administrativas > Componentes del Windows > Windows Messenger]
  3. Doble click en 'No permitir que se ejecute Windows Messenger' y seleccionamos: Habilitada
Otra opción (menos recomendable pero más rápida):
Vamos a [Inicio > Ejecutar...] y escribimos
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

24 noviembre 2005

Cambiar letra de las unidades de windows

Vamos a [Panel de Control > Herramientas administrativas > Administración de equipos > Administración de discos] y aparecen todas las unidades existentes. Hacemos click con el botón derecho sobre la unidad que queremos cambiar y seleccionamos Cambiar la letra y rutas de acceso de unidad...

Información adicional: http://support.microsoft.com/kb/307844/es

16 noviembre 2005

Creación de varias cuentas en linux

Este script bash podría servir. Recibe como entrada el grupo la cuenta y el número inicial y final de cuentas a crear.


#!/bin/bash

if [ $# -lt 4 ]; then
   echo "Crea las cuentas indicadas. El directorio por defecto es: /home/. Si no existe el grupo, se crea."
   echo "Usar: $0 [dir] "
   echo "Ejemplos: $0 alumnos mates 5 30"
   echo " $0 /home/labs alumnos mates 1 25"
   exit 1
fi

if [ $# -eq 4 ]; then
   dir="/home/$2"
   grupo=$1
   cuenta=$2
   ini=$3
   fin=$4
else
   dir=$1
   grupo=$2
   cuenta=$3
   ini=$4
   fin=$5
fi

for i in $(seq $ini $fin)
do
   echo "Creando cuenta $cuenta$i"
   useradd -d $dir$i -g $grupo -m -s /bin/bash $cuenta$i
done