sábado, enero 31, 2009

Una opción más...

El tema de los live-cds está muy bien. Te permiten probar una distribución, o incluso utilizar con total normalidad gnu/linux es una máquina sin tenerlo instalado. Tampoco hay problema para acceder a una partición windows desde el live-cd.

Ahora bien, puede ser un poco rollo estar trabajando con windows y tener que reiniciar para arrancar con el live-cd.

MobaLiveCD nos permite arrancar el live-cd desde una emulación en el propio windows que estás corriendo. Ahora no puedo probarlo pero actualizaré este post con el resultado.

Saludos.

jueves, enero 29, 2009

Elegir 100 contraseñas de golpe

Hola amig@s,

Ya siento no haber escrito nada ayer. Estuve un rato pensando pero no se me ocurría nada interesante...

Bueno, empecemos con un problema típico. Hay que elegir una contraseña y no se nos ocurre nada. Podemos utilizar un generador de contraseñas y elegir una a nuestro gusto.

PWGen:

Este generador lo tenemos para GNU/Linux, Windows, etc. Voy a hacer la instalación en Kubuntu para que se vea que es igual de fácil que en Windows.

Ésta es la página del proyecto, y ésta otra la de descargas de binarios.

Abrimos una terminal en Kubuntu y...
#pwgen
The program 'pwgen' is currently not installed. You can install it by typing: sudo apt-get install pwgen
Vale, pues entonces...
#sudo apt-get install pwgen
Nos pide la password de root.
La metemos y después de unos segundos...instalado.

Ahora vemos como funciona:

#pwgen
Nos da una lista de contraseñas más o menos segura. Eso sí, las letras son las normales y mezcla números, mayúsculas y minúsculas.

pwgen -s
La "s" significa secure. Un poco más segura pero más difícil de recordar.

pwgen -sy
Esto ya es la leche. Tiene mayúsculas y minúsculas, numeritos y caracteres especiales.

pwgen -sy0
El modificador "0" hace que no meta numeritos.

pwgen -B hace que no meta caracteres que se puedan confundir entre ellos (por ejemplo el número 1 y la letra ele, el número cero y la letra o).

pwgen -A
No pone letras mayúsculas.

Por lo tanto pwgen -AB0 no es muy recomendable pero es una contraseña muchísimo mejor que la que eligen la mayoría de los usuarios.

En la siguiente imagen se ve el resultado del pwgen -sy en el primer bloque y del pwgen -AB0 en el segundo.

Saludos.

pd: 21:24 p.m. ¡Qué pereza! me voy a correr un poco. Te lo recomiendo. "Mens sana in corpore sano".

martes, enero 27, 2009

MySQL y Urchin


Sí, este post es un rollo, pero documentar es necesario si no queremos estar reinventando la rueda continuamente.

Resulta que en mi trabajo se ha contratado una consultoría SEO y entre otras cosas han recomendado Urchin (Google) como analizador de accesos a la web.

Urchin requiere una base de datos por detrás que puede ser MySQL o PostgreSQL. He elegido MySQL.

Ahí va como se instala MySQL:

1.-He elegido la instalación sin setup. Por lo tanto descargamos el mysql-noinstall-5.1.30-win32.zip y lo colocamos en el servidor.

2.-Descomprimimos el contenido. Colocamos todo en d:\mysql (por ejemplo).
El fichero de ayuda está en d:\mysql\Docs\manual.chm

3.-Abrimos una sesión de terminal y vemos cual es el directorio de Windows.
c:\> echo %WINDIR%
En Windows2000 es c:\winnt

4.-Hay que generar el “Option File”.
Se puede usar el fichero my.ini en el directorio de Windows. Es lo primero que busca MySQL. Si no lo encuentra busca el fichero c:\my.cnf.
MySql viene con varios ficheros de ejemplo: my-small.cnf, my-medium.cnf, my-large.cnf y my-huge.cnf. Están en d:\mysql
Elige uno dependiendo del tamaño que va a tener la base de datos. Yo he elegido el my-large.

5.-Cogemos my-large.ini y lo colocamos y renombramos como c:\winnt\my.ini

6.-Creo una carpeta d:\mysql-datos donde se guardaran los datos de la base de datos. Hay que mover la carpeta d:\mysql\data a d:\mysql-datos. Tiene que quedar como d:\mysql-datos\data.

7.-Editamos el fichero my.ini y añadimos la siguiente información en la sección mysqld

[mysqld]
# set basedir to your installation path
basedir=D:/mysql
# set datadir to the location of your data directory
datadir=D:/mysql-datos/data

Importante: Aunque sea un servidor Windows, para indicar el path se utiliza la barra “normal” hacia la derecha (la del número 7 o la de dividir). Si se quiere utilizar la contrabarra hay que ponerla dos veces porque la primer es el carácter de escape.

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

8.-Vamos a hacer el primer arranque:
d:
cd mysql\bin
mysqld --console

9.-Si todo va bien, nos tiene que decir que...
ibdata1 no existe. Lo crea con 10 Mb.
ib_logfile0 no existe. Lo crea con 5 Mb.
ib_logfile1 no existe. Lo crea con 5 Mb.
No existe el buffer Doublewrite. Lo crea.
Crea las “Foreign key constraint system tables”.
InnoDB: Started.
Event Scheduler: Loaded 0 events.
Mysql: Ready for connections. Port: 3306.

10.-Para hacer alguna prueba abrimos otra sesión y vamos a d:\mysql\bin:
mysqlshow
Así vemos las bases de datos que hay.

11.-Para ver las tablas de la base de datos "information_schema":
mysqlshow information_schema
mysql “select * from tables” information_schema

12.-Parada de la base de datos.
Abrimos otra sesión.
d:
cd d:\mysql\bin
mysqladmin –u root shutdown

13.-Es importante realizar las labores de postinstalación ya que la base de datos tiene cuentas sin passwords.

Poner password al usuario root:
mysqladmin -u root -h localhost password XXXXXX

14.-Creamos la base de datos para URCHIN:

mysql –u root -p (nos va a pedir la password).
mysql> create database urchin character set utf8;
mysql> GRANT ALL ON urchin.* to ‘urchin’@’localhost’ IDENTIFIED BY ‘xxxxx’ WITH GRANT OPTION;

Si nos fijamos un poco, veremos que el acceso de urchin tiene que ser desde localhost en la instrucción de arriba.

Si Urchin va a instalarse en una máquina diferente en lugar de localhost pondremos el servidor que sea o la IP. También podemos usar el caracter '%' para permitir el acceso desde cualquier lugar.

GRANT ALL ON urchin.* to ‘urchin’@’%’ IDENTIFIED BY ‘xxxxx’ WITH GRANT OPTION;

lunes, enero 26, 2009

Nuevos juguetitos para windows

Mark Russinovich, de Sysinternals antes, y ahora de Microsoft desde el 2006, además de sus artículos técnicos, nos provee también de bonitos juguetitos que deberían venir incluidos en el Windows de serie.

En abril del año pasado me refería a un "super explorador de procesos". Realmente siguiendo las denominaciones del bueno de Mark es mejor que lo llamemos el monitor de procesos (PROCESS MONITOR), y hoy quería presentaros otra super utilidad.

Se trata del PROCESS EXPLORER y es la herramienta perfecta para saber que proceso tiene pillado un archivo, y cosas por el estilo. Otra utilidad que nos explican en la misma página de descarga es conocer las DLLs que abre un proceso concreto.


¡Nos vemos!

domingo, enero 25, 2009

Navegador especial III

¿Recordáis que queríamos hacer un nuevo navegador? Sí, lo íbamos a hacer en Visual Basic.

La primera mejora fue un visor de código HTML.

Ahora vamos hacerlo algo diferente a los navegadores actuales. Para afrontar un retohacking como los que plantean en elladodelmal.blogspot.com todo empieza por un análisis de frames HTML si los hubiera.

Además, de estar forma vamos a aprender a buscar texto dentro de un control de texto enriquecido (RichTextBox) en .NET.

Después de escribir el código HTML llamamos a la siguiente función:
pintar("FRAME", RichTextBox1.Text.ToString.Length)

El procedimiento "PINTAR" pintará de rojo las palabras "FRAME" que encuentre:

Private Sub pintar(ByVal palabra, ByVal longitud)
Dim i As Integer
Dim posicionAnterior As Integer
posicionAnterior = -1
RichTextBox1.SelectionStart = 0
RichTextBox1.SelectionLength = 0
For i = 0 To longitud - 1
If i = 0 Then
RichTextBox1.Find(palabra, 0, RichTextBoxFinds.WholeWord)
Else
RichTextBox1.Find(palabra, RichTextBox1.SelectionStart + 1, RichTextBoxFinds.WholeWord)
End If
If posicionAnterior = RichTextBox1.SelectionStart Then
Exit For
End If
RichTextBox1.SelectionFont = New Font("Courier New", 9, FontStyle.Regular)
RichTextBox1.SelectionColor = Color.Red
posicionAnterior = RichTextBox1.SelectionStart
Next
End Sub

Aquí el mismo código con identación:



El resultado si vamos al primer retohacking es el siguiente:


Saludos.

sábado, enero 24, 2009

Más acción

Como alguien me lo ha pedido en un comentario del post anterior, ahí va lo que voy a hacer mañana domingo junto con mi colega Petu.

Apuko igoera

Creo que la web oficial es esta: http://subida-apuko.blogspot.com/

La foto del recorrido la he cogido de ahí:

El entrenamiento de esta semana ha sido un día a correr 32 minutos y bicicleta estática 23 minutos. O sea, 1 hora.

En la bicicleta he cambiado la cadena que se rompió el otro día y he puesto dos cubiertas nuevas continental para barro y banda lateral antipinchazos.

Saludos, y a ver que pasa.

P.D.: Se me olvidaba el gráfico...UFFF!!!!



jueves, enero 22, 2009

Sistemas operativos

Ayer empecé a leer el libraco (1.053 páginas) de Sistemas Operativos de Tanenbaun.

Por cierto, acabo de ver una cosa muy interesante. El libro que me he comprado y cuesta 103,02 dolares gastos incluidos lo tenéis gratiX en http://books.google.es/books?id=g88A4rxPH3wC&pg=PA105&lpg=PA105&dq=sistemas+operativos+peterson&source=web&ots=yrVzTBcR3M&sig=sHW1Y86qk0F7n2YGfqmnf_dB9VY&hl=es&sa=X&oi=book_result&resnum=2&ct=result#PPA105,M1

Realmente yo he comprado la tercera edición que está en inglés. Ese enlace contiene la segunda edición en castellano. Mi libro tiene el código fuente de Minix 3 y la edición 2 parece que no la tiene, pero no importa porque lo podéis bajar en un live CD de Minix desde www.minix3.org.

En la página 3 plantean la siguiente pregunta:
¿Qué es un sistema operativo?

Esta es la típica cosa que todo el mundo sabe lo que es, pero no sabe como empezar a explicarlo.

Tanembaun tiene el mismo problema y decide definirlo teniendo en cuenta los propósitos del sistema operativo.

La verdad es que no ha arriesgado demasiado. Tengo un libro de cuando la carrera que llamábamos "el Peterson" por ser el autor principal. En este libro (Sistemas operativos conceptos fundamentales) dan varias definiciones diferentes pero también en función de la utilidad del S.O. Peterson-Silberschatz dan definiciones más precisas que Tanenbaum-Woodhull, pero las explicaciones de los segundos son más completas.

Esta podría ser la definición que se extrae de las dos lecturas:
Un sistema operativo es un software que proporciona al usuario una máquina extendida o máquina virtual de forma que facilite la utilización del hardware subyacente.

Realmente los autores no den esa definición tan concisa, sino que se extienden a lo largo de varios párrafos enumerando un montón de detalles. De todas formas, reconocen que centrarse exclusivamente en la facilidad para el usuario deja la definición algo floja y es necesario ampliarla en el siguiente sentido.

La segunda visión se centra en la gestión de los recursos. Concretamente muy acertadamente Tanenbaum dice que la definición anterior se refiere a una visión de arriba hacia abajo (del usuario hacia el hardware) y habría que complementarlo con una visión de abajo hacia arriba.

Otra vez, después de leer este subtema podríamos decir que:

Un sistema operativo es un software que gestiona los recursos hardware subyacentes de forma que otros programas y/o usuarios puedan hacer uso de esos recursos para sus tareas.

¿Tú tienes otras definiciones?

Después de esta chapa un poco de humor...

¿Recordáis la presentación en directo de Windows98? Ahora sabréis de donde se sacó Microsoft la campaña de Windows Vista: ¡WOW!.



Me pregunto que habrá sido de ese chico tan simpático.

miércoles, enero 21, 2009

Resultado del domingo

Ya que hay alguno que se ha interesado os contaré lo ocurrido en la marcha del domingo.

La salida fue bastante explosiva para mi. En lugar de quedarme y subir a mi ritmo, intenté ir todo lo que pude con la cabeza (grave error).

Luego empezó el flato. Este dolor no sé como explicarlo.

Antes de empezar la marcha compré dos chocolatinas. Le di una a mi colega Petu. Pues bien. Llegó un momento en el que notaba que tenía que comer (la famosa pájara). Ya no pedaleaba con ganas, más bien, dejaba caer las piernas. Me comí la chocolatina y me arrepentí mucho de haberle dado la otra al Petu que seguro que ni se la comió :-(

Después de vaciar el botellín vino la sed, hasta que paré en un riachuelo de nieve que dejé casi seco. En ese momento me pilló por detrás mi compi de trabajo. Desde ese momento juntos hasta casi el final cuando se me rompió la cadena, casualmente ocurrió en la última subida antes de bajar a meta :-) salvado por la campana.

Una foto del momento descargada de http://www.argazkimartxa.com/joomla/index.php?option=com_ponygallery&Itemid=129&func=viewcategory&catid=200

martes, enero 20, 2009

Instalación de Minix II


Estoy reventado. Hoy dos reuniones de cambio de junta. En una soy de la junta saliente y en la otra de la entrante. ¡Ufff! Ayer explique cómo preparar una partición para Minix. Hoy toca la instalación.

Instalación de MINIX

Arrancamos con el CD de instalación.

Nos aparecerá el siguiente mensaje:

Welcome. Minix 3 is still under development and may contain bugs and other imperfections. If you would like to help develop MINIX 3 further into a rock solid, reliable operating system, please go to the official Website: www.minix3.org to see how you can help. Login as root and run 'setup' to install Minix. Minix Release 3 version 1.0 (console) minix login:
Seguimos esa instrucción:

# setup
: (cuando aparecen los dos puntos está esperando a que pulsemos el enter).

Primero pregunta por el Keyboard y nos da unas opciones de teclado.
Seleccionamos spanish.

Luego preguntar por la tarjeta de red.
Yo he indicado la opción por defecto (que no tengo tarjeta). Más adelante podremos instalarla sin problemas.

Ahora a ver si queremos la instalación Minimal o Full. Por supuesto queremos Full.

Cuando nos pregunte por la partición Minix indicamos automatic mode.

Ahora llegamos a un punto importante y peligroso.
Nos pregunta por el disco a utilizar. Yo sólo tengo un disco con la partición del Kubuntu (partición del S.O. y partición de swap) y un espacio libre en el mismo disco.

Disk number to use: 0 (el único que tengo).
Region: 1 (Yo he tenido que seleccionar la region 1 que es el espacio libre del disco).

Cuidado. Tu instalación es diferente a la mia. El instalador MINIX avisa: "This is the point of no return".

El instalador a elegido mi "region 1 of disk /dev/c0d0".

Ahora nos dice: "MINIX will take up 331 Mb without /home. How big do you want your /home to be in Mb (0-1668)". En este punto no se si he elegido bien. Le he dado el máximo.

Ahora pregunta por el tamaño del bloque: "The maximum (and default) file system block size is 4 kb. Le digo que me parece bien.

Me muestra los filesystems:

root /dev/c0d0p1s0 16 Mb /home /dev/c0d0p1s1 1.668 Mb /usr /dev/c0d0p1s2 rest of c0d0p1

Wait for bad block detection.

Al final nos dice que podemos ejecutar shutdown "to exit MINIX 3 and enter the boot monitor".

Type 'boot c0dXp1 where X is the bios drive number of the drive you installed on, to try your new MINIX system. Probably the right command is boot d0p1.

Con el shutdown final la instalación ya ha terminado. Ahora el problema es arrancar el MINIX ya que el gestor de arranque GRUB no tiene la opción de arranque de MINIX.

Configuración de GRUB:

Arrancamos Kubuntu y abrimos una sesión de terminal.

Hay que editar el fichero /boot/grub/menu.lst

Para editar el fichero hay que darle permisos de escritura a root:
sudo chmod 744 menu.lst

Editamos con sudo vi menu.lst

Después de las opciones de arranque de Kubuntu añadimos el arranque de MINIX:

title Minix 3 rootnoverify (hd0,2) chainloader +1 boot

En mi instalación la cosa ha funcionado con (hd0,2) pero en la tuya puede ser (hd0,0), (hd0,1), etc.

Por supuesto, para reiniciar: shutdown -r now y a disfrutar del nuevo MINIX.

Saludos.

lunes, enero 19, 2009

Instalación de Minix


Ayer os comentaba lo del Minix.
Me he comprado el libro que viene con un CD, pero si os apetece instalarlo os lo podéis bajar gratiX de www.minix3.org

La forma de instalarlo parece sencilla. Se descarga la imagen .iso, se graba el CD y se arranca con él. Se supone que encontrará una partición libre etc. etc.

Mi PC de sobremesa tiene un único disco duro de 40 Gb. Todo el disco está ocupado por Kubuntu , por lo que lo primero es reducir alguna de las particiones.

No he encontrado el CD de arranque de Kubuntu (creo que lo tengo en el trabajo), pero sí he visto un viejo Ubuntu 7.10.

Arrancamos con el CD de Ubuntu. Vamos a System, Administration, y seleccionamos "Partition Editor". Nos abrirá el GParted que es muy parecido a PartitionMagic.

1.-Selecciono la partición /dev/sda1 (ext3).
2.-Clic en botón Resize/Move.
3.-"Free Space Following" (espacio libre por el final) indica 0. Le ponemos 2.000 Megas. El mínimo necesario para Minix es 200 Mb.
4.-Clic en el botón Apply.

---***---

Mientras se reduce la partición os comentaré unos chascarrillos sobre Minix y la rivalidad entre Linus Towards y Andrew S. Tanenbaum.

Tanenbaum creó Minix con propósitos educativos. Su intención no era complicarlo. Quería mantenerlo pequeño de forma que se pudiera estudiar en un curso.

Siendo estudiante, Linus tuvo que aprender Minix. Con los conocimientos que obtuvo de aquel pequeño S.O. creó otro S.O. al que llamo Linux.

Siendo así las cosas, terceras personas acusaron a Linus de robar el código de Minix. Según nos dicen desde el FAQ en castellano de www.minix3.org esto no es más que basura. En el 2004 Tanenbaum ya dejó clara su postura al respecto defendiendo totalmente a Linus Towards y al propio Linux.



Saludos.

domingo, enero 18, 2009

Ya les vale...

y es que prefieren pagar la multa y mantener el explorer.



Noticia de www.elpais.com

Por cierto, el 6 de enero compré un libro por Amazon. Es el Operating Systems Design and Implementation de Tanenbaum. El libro trata del sistema operativo minix3. Pues ayer (17-01-2009) me llegó el papelito de correos para recogerlo.



Tanembaun creo el Minix con propósito educativo. Linus Towards utilizó esos conocimientos para crear Linux siendo un chaval de 22 años.

Saludos.

sábado, enero 17, 2009

Por fin un poco de acción

Mañana he quedado con Petu, un compañero de trabajo y sus colegas bikers para participar en una marcha de mountain bike en Berriz.

Aquí el cartel

Espero poner algunas fotos mañana.

Todo mi entrenamiento ha sido un día de estática esta semana. Por lo menos a ver si no pinchamos.

Esta mañana he estado preparando la bici. El plato y el desviador estaban ligeramente doblados y rozaban la cadena. El cambio necesitaba algo de aceite para funcionar correctamente. He comprado una cámara nueva.

miércoles, enero 14, 2009

La informática en aquellos tiempos


Ayer ponía una imagen sacada de http://www.frobenius.com/ibsys.htm donde se ven algunas características del IBSYS Operating System.

IBM distribuía este S.O. con los IBM 7090 e IBM 7094. Datos sobre la máquina y sistema operativo en http://www.cozx.com/~dpitts/ibm7090.html (de aquí se ha bajado la fotografía).

En esta época los informáticos éramos otra cosa. El informático era un técnico muy reconocido que igual que los médicos utilizaba bata blanca. No era de extrañar pues el IBM 7094 costaba dos millones de dólares y su esperanza de vida era de cinco años.

Mi jefe me suele recordar que Parque Jurásico fue un desastre para nuestra imagen. ¿Recordáis al desastroso informático que provoca el desastre? Se llamaba Dennis Nedry que es un anagrama de Nerdy Sinned (Nerd = tonto y Sinned = pecador). Desde entonces nada fue igual :-(


Saludos.

pd: No seáis como Nerdy ;-)

martes, enero 13, 2009

Sistemas operativos, el inicio


Esto es un locura. Con el lanzamiento de Windows 7 ya tenemos otro sistema operativo gratuito listo para probar.

Hoy en día tenemos disponibles decenas de distribuciones GNU/Linux, varios xBSD, sistemas abandonados como ms/dos, os/2, educativos/modificables como minix, etc. Conviven sistemas propietarios y software libre. Pero esto no siempre ha sido así.

Hace menos 50 años (eso no es nada, yo ya he pasado de 30 ;-) el panorama era muy diferente. Tanto, que no había sistemas operativos en el sentido en el que ahora los conocemos y además eran los propios clientes los que construían su sistema operativo. IBM estaba centrado en el hardware y luego pasó lo que pasó.

General Motors creó su General Motors OS en 1955 para utilizarlo en sus máquinas IBM.

En 1956 General Motors (GM) en combinación con la aviación norteamericana (NAA de North American Aviation) crean el GM-NAA I/O. Más que un sistema operativo eran rutinas para manejar dispositivos de entrada/salida en el lanzamiento de procesos batch.

En 1955 se había constituido un grupo de voluntarios formado por usuarios de IBM llamado SHARE. Este grupo construyó el Share Operating System. ¿Voluntarios colaborando en un sistema operativo? Sí, esto me suena. Y es algo que funcionó antes de que se crearan los gigantes del software. Pero duró poco.

Por fin IBM recogió el testigo y mejoró el Share OS creando el IBSYS. Antes que el IBSYS crearon el FMS (FOTRAN Monitor System) que se distribuía con el propio FORTRAN.

En 1958 la Universidad de Michigan adaptó el GM-NAA I/O para dar servicio a sus estudiantes. Se llamó UMES. Duró hasta 1967 cuando fue sustituido por MTS.

Los laboratorios Bell crearon el Besys (Bell Operating System) en 1957 y se utilizó hasta mediados de los 60. Era un sistema en tiempo compartido por lo que ya se parecía bastante más a un sistema operativo moderno. Lo curioso es que permitieron que otros lo utilizaran libremente aunque sin soporte. Esto también me suena.

Más información...

domingo, enero 11, 2009

Primera mejora del navegador

El otro día creábamos un nuevo navegador a nuestra medida.

Ahora que tenemos un navegador nuevo necesitamos que haga algo útil.
Una cosa imprescindible en un retohacking es la visualización del código HTML.

Pues añadimos el control "RichTextBox" que permite visualizar texto con formato.
Ponemos también un botón para que hagamos clic cuando queramos ver el código HTML.
Y el comando mágico...

Me.RichTextBox1.Text = navegador.DocumentText



El código VB:



Saludos.

jueves, enero 08, 2009

Un nuevo navegador más bonito

Hola,
He comprado un libro en amazon sobre el sistema operativo Minix. Hasta que llegue y lo instale en algún sitio nos vamos a divertir con otra cosa.

¿Alguna vez habéis pensado hacer un nuevo navegador/explorador/browser? ¿Pensáis que es difícil?

Nada más lejos de la realidad.

Hace unas semanas pase del Visual Studio 2003 al 2005. Ahora con el framework 2.0 hay nuevas posibilidades. Por ejemplo tenemos un nuevo objeto llamado WebBrowser.

Para darle alguna funcionalidad extra que no traen los browsers comerciales en los próximos días lo vamos a adaptar para la superación de algún retohacking.

Este tipo de proyecto es muy fácil con VB.NET.

1.-Creamos una aplicación Windows con un formulario.

2.-Introducimos el textbox para la dirección y el webBrowser para mostrar el resultado.



3.-El código fuente:


Ahora lo vemos en acción:



¿Y de que forma se ve en Internet este navegador?

Saludos.

martes, enero 06, 2009

Problemas con el modem de Telefónica y Windows Vista

Hola, Este post me sirve para documentar antes de que se me olvide la forma en la que he resuelto un serio problema. Espero que sea de utilidad para alguien.

Cuando contraté la línea ADSL con Telefónica me vendieron un modem que iba muy bien con mi antiguo PC con XP. Era un modem Thomson Speedtouch 330 USB:

El problema de este modem es intentar hacerlo funcionar en un equipo con Windows Vista.

Lo primero que miré fue el soporte web de Telefónica. Hay drivers y software preparadito para instalarlo en XP con la configuración de la línea incluida, pero para Vista no hay nada de nada.

Si llamas a Telefónica te dicen que no está soportado en Vista y que si quieres te mandan otro para Vista con la factura que eso supone. No me parecía una opción razonable.

Lo primero que hice, fue ir a la web del fabricante para descargarme los drivers para Vista. Los drivers existen, están aquí:

http://www.thomson.net/GlobalEnglish/Products/dsl-modems-gateways/windows_vista_support/Pages/default.aspx#usb

El problema es que no funcionan, o al menos no he podido hacerlos funcionar. Me imagino que a los de telefónica les ha ocurrido lo mismo.

Con esos driver el modem se instala como "Conexión de acceso telefónico", pero no se consigue conectar a nada.

Entonces me puse a buscar y encontré lo siguiente:

http://www.adsltodo.com/foros/viewtopic.php?f=7&t=490

Siguiendo las instrucciones se soluciona el problema.

Lo único añado unos comentarios:

1.-Los drivers que funcionan son para XP. No valen los que nos proporcionó Telefónica con el modem. Hay que descargarse los que indica en el enlace.

2.-Si tienes contratada una IP dinámica seleccionas ppp0e. Si tienes IP fija elige ppp0a.

3.-Como instalamos los drivers sin CD de instalación de Telefónica, luego hay que configurar a pelo los parámetros de la línea que tenemos contratada.
Llamé a soporte de telefónica y me dijeron que VPI es 8 y VCI 32. En las instrucciones del enlace indican que pongamos VPI/VCI = 8/35. Lo curioso es que no es posible poner 8/32 (sale un mensaje de valores no válidos), pero no importa porque con 8/35 funciona.

Bueno, lo dicho, espero que le sirva a alguien y desde aquí le doy las gracias al usuario "academico" del foro adsl ADSLTodo.

Saludos.

Microsoft y sus problemas de calendario III

Hoy termino la serie que empezó con la parte I y parte II.

Voy a poner otros cuatro productos de Microsoft con problemas de calendario, pero no quiero hacer sangre con esto. Todos los fabricantes han tenido problemas similares. La ventaja de centrarse en MS es que todo el mundo la conoce y que los casos se encuentran todavía hoy bien documentados aunque hayan pasado años en algunos casos.

Microsoft Exchange:

El Microsoft Exchange team anunció el 29 de febrero de 2008 lo siguiente:

Había llegado el 29-2-2008 y mucho clientes se pusieron en contacto con el Team porque:

1.-No se podían crear nuevos buzones.

2.-Las instalaciones de Exchange estaban fallando.

Comprobaron que el error se producía al intentar reiniciar el servicio "System Attendant" de Exchange 2007 el 29 de febrero de 2008.


Microsoft SharePoint:

Aparece un error cuando escriba 29 de febrero en el campo "Cumpleaños de" de SharePoint Server 2007.



Microsoft Outlook Web Access (OWA):

Convocatoria de reunión de 29 de febrero no funciona con Outlook Web Access asiático.


Microsoft Small Business Server:

El anuncio en la web oficial del 15 de enero de 2008 advertía que "The CEICW Certificate Generator will be out of the office on February 29, 2008".




Bueno, y eso es todo.
Y para que conste que el calculo de un año bisiesto es realmente fácil ahí va este código que la propia Microsoft nos pone a nuestra disposición:

¡Hay! Qué viejos nos hemos hecho

Son las 4.:35 a.m.
Hoy tenía cena con los amigos. Hace unas horas que los bares de la cuchillería han cerrado.
He recordado a mis amigos como hace unos 13 años los bares de la cuchi cerraban a las 5:00 a.m. los viernes. Nadie me creía pero yo lo recuerdo muy bien. Era la hora de retirada obligada. Los sábados la cuchi cerraba al amanecer. Ribera, Castrol, Mon y yo llegábamos a salir jueves, viernes y sábados seguidos.
Más o menos seguimos saliendo por los mismo sitios, aunque Castrol está en Shanghai y Mon sale con sus amigos.
Ahora somos los más viejos del lugar, y a la 1:30 toca retirada de la cuchi y búsqueda de otros lugares.
¡Qué barbaridades hacíamos! 
Cuando hoy en día los chavales berrean por la noche, mean en los cantones,..., yo digo ¡que animales!, pero realmente no me puedo quejar...

Ahí va un concierto en el Kafe antzokia de Bilbao. Estudié en la Universidad de Deusto y varias veces terminamos allí la noche...recuerdo una noche de juerga en especial.


div>

¿Recuerdas, Castro? No, no estuvimos en este concierto. Me refiero a tus amigas de Burgos, y a nuestras compañeras de clase aquella noche del Azkena.

La canción creo que es adecuada por lo de "... y yo que viejo..."

Saludos.

domingo, enero 04, 2009

Microsoft y sus problemas de calendario II

Ayer dejamos el tema en los problemas que tuvieron Windows95 y Windows98 con el año bisiesto 2000.

Pero hay más...

Si Windows95 y Windows98 eran los clientes más extendidos, en la parte servidora Windows NT4, lanzado en 1996, era el Rey de la jungla y requería la actualización por medio de un service pack para solucionar el problema del año bisiesto.


¿Y que hay del office?

El mayor problema con los documentos office y con las aplicaciones office no eran 100% responsabilidad de Microsoft.

A finales de 1999 cambié de trabajo y llegue a un sitio donde había aplicaciones enteras en Access (programación Visual Basic para Aplicaciones o VBA). Se utilizaba Access 2.0 y los campos de tipo fecha tenían años con 2 dígitos (Fecha corta). Si se hubieran utilizado los 4 dígitos no habría habido ningún problema pero no fue así.

El problema en Access 2.0 no es demasiado grave, pero la responsabilidad de Microsoft fue considerar en una suite de 1997 (office97) que el 00 era 1900 en lugar de 2000 (01 era 1901 y así hasta el final).


Bueno, la mayor parte de las aplicaciones seguían funcionando bien aunque el 00 se considerara 1900 (salvo si se utilizaban funciones para calcular diferencias entre fechas).

Migre las aplicaciones a Office97, cambié las fechas (código y datos) a años de 4 dígitos. Luego era necesario el Service Release 2 de Office97 y lógicamente antes del SR-2, el SR-1.








Bueno, a estas alturas algún avispado se habrá dado cuenta de un efecto colateral importante.

Si alguien hubiera seguido manejando fechas cortas (año de 2 dígitos), el Access por ejemplo consideraría que 00 se refiere al año 1900 en lugar del 2000. Y el año 2000 fue bisiesto y el 1900 no, por lo que en ese mismo Access el "29/2/00" habría provocado error de fecha incorrecta.

Pues eso no ocurrió, paradojas de la vida, por otro error de Microsoft. A todos los efectos, 1900 para Office es un año bisiesto por un problema de compatibilidad con Lotus 1-2-3:



Todavía me queda otro post en el que espero terminar el tema de los bisiestos. A ver si termino luego por la noche.

Nos vemos.

viernes, enero 02, 2009

Microsoft y sus problemas de calendario

Hola amig@s,

Este post no es un ataque a Microsoft. No hay que entenderlo así. He utilizado sus sistemas operativos, aplicaciones y utilidades prácticamente durante toda la vida y hoy en día sigo utilizándolos a diario. Además, como se podrá ver a continuación, el soporte a las empresas y la documentación que proporcionan en caso de tener problemas es impresionante.

Lo que ocurre es que ahora que puedo recordarlo me gustaría recapitular un problema que tienen con los años bisiestos. Y es que no se qué les pasa. ¿Tan difícil es entenderlo? ¿Hay que introducir un tema exclusivo en todos los libros de programación?

Usted, desarrollador de paquetes comerciales, memorice esto de una vez. Si su aplicación maneja fechas, tiene que tener en cuenta los años bisiestos (esos que tienen 29 de febrero).


Bueno, sencillo ¿no? Está clarinete: Según el calendario gregoriano por el que nos regimos, un año es bisiesto si es divisible por 4, excepto el último de cada siglo (aquel divisible por 100), salvo que éste último sea divisible por 400.

Ejemplos típicos (por problemáticos): 1900 es divisible entre 4 pero no es bisiesto. 2000 es divisible entre 100 y es bisiesto.

Pues en el 2009, cincuenta años después del "FORTRAN Monitor System" seguimos con problemas de año bisiesto. Por favor, pónganse las pilas.

O sea, ¿que el firmware del cacharrín no se esperaba un día más en 2008? No se si reír o llorar pensando en esta noticia de unos pocos días antes...

Bueno, esto del submarino ha sido una pequeña broma.

Hagamos un poco de memoria,..., sí, esto yo lo he vivido antes..., poco antes del año 2000.

Resulta que aparte de todo el tema del efecto 2000, se daba otra circunstancia. El año 2000 era fin de siglo y normalmente no debería ser bisiesto, pero, que mala suerte, 2000 es múltiplo de 400 y por lo tanto, ES BISIESTO.

En aquella época previa al 2000 en las empresas había 2 sistemas operativos predominando en las empresas: windows 95 y windows 98. Tanto el 95 como el 98 ya requerían parche para el 2000, entre otras cosas por el tema del bisiesto.

Advertencia: Este problema del bisiesto en win95/98 es una anécdota sin importancia. Era más importante el problema del año 2000.

Documentación de microsoft para la actualización de Windows95:


ACTUALIZACIÓN WINDOWS 95 PARA EL EFECTO 2000

 ********************************************************************** 
Microsoft Windows 95  
Archivo LÉAME de la actualización para el año 2000 
Marzo de 1999 
**********************************************************************

Los siguientes problemas se resuelven al instalar la actualización.

    1. Cuadro de diálogo Buscar "Archivos o carpetas" (shell32.dll) 
    La ficha Fecha de modificación del cuadro de diálogo Buscar "Archivos o carpetas" muestra el año en el formato AA. Este formato hace que los años posteriores al 2000 se aparezcan de forma incorrecta. Por ejemplo, si  
    escribe 20/03/2003, aparecerá 20/03/C3. Sin embargo, no tiene efecto alguno en la búsqueda. Si busca los archivos modificados en un intervalo de fechas concreto, escriba la fecha en formato de 2 o 4 dígitos y la búsqueda se realizará según las fechas escritas. El archivo se actualizará únicamente si utiliza la versión 950 o 950a de Windows 95. Este problema no se produce en versiones posteriores de Windows 95.

    2. Administrador de archivos de Windows (winfile.exe 
    El Administrador de archivos de Windows no muestra ni ordena correctamente las fechas posteriores al año 2000. Si utiliza el Administrador de archivos para ver el contenido de las carpetas y selecciona la vista "Todos los detalles del archivo", la fecha de los archivos creados en el año 2000 o posteriores aparecerán de la siguiente forma:

    1 de enero de 2000 aparecerá como 1/1/;1 
    3 de febrero de 2023 aparecerá como 2/3/>3 
    5 de marzo de 2036 aparecerá como 3/5/=6

    3. Intérprete de comandos (command.com) 
    El comando DATE (un comando interno de COMMAND.COM) no trata correctamente las fechas de dos dígitos entre 00 y 79. Si se escriben fechas de dos dígitos pertenecientes a este intervalo se produce un error "Fecha no válida".

    4. Selector de fecha y hora (comctl32.dll).  
    Antes, cuando establecía la configuración regional en el Panel de control para que tratara los años con dos dígitos, la función Selector de fecha y hora no reflejaba correctamente esta fecha. Esta actualización corrige este problema.

    5. Subprograma Marcador de teléfono (dialer.exe) 
    La opción Mostrar el registro de llamadas no muestra correctamente la fecha cuando una llamada telefónica finaliza correctamente. Si la fecha del sistema está ajustada al año 2000, se mostrará la fecha como 100,  
    101,102, etc. 

    Sucede, por ejemplo, cuando hace una llamada en el año 2000 con el subprograma Marcador. El archivo de registro creado o anexado al finalizar la conexión telefónica muestra incorrectamente la parte del año de la fecha de llamada: 101, 102, 103, etc.

    6. Subprograma Fecha y hora del Panel de control (timedate.cpl) 
    Cuando se selecciona la fecha 29 de febrero y se cambia el año mediante las flechas arriba y abajo en el cuadro de diálogo Propiedades de Fecha y hora, el calendario mostrará 29 de febrero cada año, independientemente de si es un año bisiesto o no. Es un problema de presentación del subprograma.

    7. Controlador virtual de DHCP (vdhcp.386) 
    Winipcfg /all - Las recuperaciones de direcciones IP obtenidas el 01/3/2000 o en una fecha posterior se considerarán como obtenidas el día anterior. La fecha del sistema se mostrará correctamente, pero el cliente de DHCP notificará como fecha el día anterior.

    Por ejemplo, si inicia una sesión en una LAN después del 1 de marzo del 2000 y ejecuta Winipcfg /all desde Inicio\Ejecutar o Ipconfig /all desde una sesión de DOS, la fecha de obtención es el día anterior. Después del 28/2/2000, la fecha de obtención es el día anterior a la fecha esperada.

    8. Microsoft Foundation Class Library (mfc40.dll) 
    Es posible que, después del año 2000, los programas que utilicen los operadores integrados de la clase COleDateTime analicen incorrectamente las fechas. Por ejemplo, 02/05/2000 podría aparecer como 2/05/100. Microsoft ha modificado la clase COleDateTime para que sea menos sensible a las suposiciones de los  
    programas.

    9. Comando Xcopy de DOS (xcopy.exe, xcopy32.exe) 
    Al usar xcopy en modo real con el parámetro opcional /D:fecha, xcopy no acepta años en formato de dos dígitos, excepto para el intervalo de años 80 a 99. Se mostrará el mensaje "Fecha no válida". Al usar xcopy en modo protegido (desde Windows), se aceptarán fechas de dos dígitos, pero se reconocerán como pertenecientes al siglo 20 (05/02/01 se verá como 05/02/1901).

    10. Archivo de la biblioteca en tiempo de ejecución de Microsoft (msvcrt40.dll 
    Algunas de las aplicaciones que utilizan esta biblioteca de tiempo de ejecución podrían comportarse como si fuera una hora antes de lo que indica el reloj de Windows. El problema durará una semana, del 1 de abril al 8 de abril del 2001, tras lo cual las aplicaciones cambian al horario de verano, lo que hará que vuelvan a estar sincronizadas con el sistema operativo. 
    El problema se debe a que el 1 de abril del 2001 es domingo, lo que provoca un pequeño error en un algoritmo del archivo de la biblioteca de tiempo de ejecución que comprueba el inicio del horario de verano.  
    En realidad, no se trata de un problema relacionado con el año 2000, sino con el horario de verano. Podría producirse en 1973, 1979, 1984, 1990, 2001, 2007, 2012, 2018, 2029 y 2035, todos ellos años en los que el 1 de abril es domingo.

    11. Automatización OLE (oleaut32.dll, olepro32.dll, stdole2.tlb, asycfilt.dll 
    La biblioteca de automatización de Microsoft contiene rutinas para interpretar los años de dos dígitos, y permite que las aplicaciones creen fechas no ambiguas.  
    En Windows 95 el punto de corte para los años que se indican con dos dígitos es 1999, lo que significa que 00 se interpretará como perteneciente al siglo 20. Por ejemplo 1/1/00 se convierte en 1/1/1900

En Windows98 el problema del bisiesto es idéntico a Windows95, aunque el resto de problemas del efecto 2000 es diferente. Lo realmente grave es que siendo un sistema operativo lanzado en 1998 tuviera tantos problemas para el 2000.


III. ¿Cuáles son los problemas relacionados con el milenio de Windows 98?

Los problemas mostrados a continuación se resuelven con la instalación 
de esta actualización.

1. Selector de fecha y hora (
comctl32.dll). 
Antes, cuando establecía la configuración regional en el Panel de 
control para que tratara los años con dos dígitos, la función 
Selector de fecha y hora no reflejaba correctamente esta fecha. 
Esta revisión corrige este problema.

2. Microsoft
Wallet (actpmnt.ocx)
Al escribir información de tarjetas de crédito en versiones de 
Microsoft
Wallet anteriores a la versión 2.1.1383, debe escribir el 
mes, el día, y el año para las fechas de caducidad posteriores al 
año 2000. Si no lo hace, puede que no se trate la información de la 
forma esperada.

Por ejemplo, si escribe un número de tarjeta de crédito con una 
fecha de caducidad 01/5, se tratará como el 1 de mayo de año 
actual. Este comportamiento ha cambiado en Microsoft
Wallet 
versión 2.1.1383 y en versiones posteriores.

3. Microsoft Virtual
Machine
Se han notificado problemas relacionados con el milenio y con las 
máquinas virtuales de Java basadas en las versiones 1.1.1 a 1.1.5 
del Java
Development Kit de Sun Microsystems. Puede que las 
aplicaciones programadas en Java que usan la biblioteca de clases 
java.txt.SimpleDateFormat traten incorrectamente las fechas de 4 
dígitos.

Por ejemplo, si tiene un subprograma o una aplicación programada en 
Java que usa
SimpleDateFormat y escribe cuatro dígitos para el año, 
puede que las funciones de fecha trunquen el año y usen únicamente 
los dos primeros dígitos (por ejemplo, 2000 se convertiría en 20).

4. Subprograma Marcador de teléfono (
dialer.exe)
La opción Mostrar el registro de llamadas no muestra correctamente 
la fecha cuando finaliza correctamente una llamada telefónica. Si 
la fecha del sistema está ajustada al año 2000, se mostrará la 
fecha como 100, 101,102, etc. 

Por ejemplo, cuando hace una llamada con el subprograma Marcador en 
el año 2000. El archivo de registro creado o anexado cuando 
finaliza la conexión telefónica muestra incorrectamente la parte 
del año de la fecha de llamada: 101, 102, 103, etc.


5. Subprograma de Fecha y hora (timedate.cpl)
Cuando selecciona la fecha 29 de febrero y cambia el año mediante 
las flechas arriba y abajo en el cuadro de diálogo Propiedades de 
Fecha y hora, el calendario mostrará 29 de febrero cada año, 
independientemente de si es un año bisiesto o no. Es un problema de 
presentación del subprograma.


6. Propiedades del documento (docprop.dll)
Cuando ve las propiedades de documentos de Microsoft WordPad o 
Microsoft Word y establece información de fecha personalizada, no 
se acepta el año 2000 como una entrada válida cuando se escribe 
como "00". Se supone que todas las fechas de dos dígitos están en 
el siglo 20 (es decir, 19xx). Además, si la zona horaria está 
establecida a Lejano Oriente, las propiedades de fecha pierden un 
día cuando escribe 2000 como año.

7. Inicio (io.sys)
Si se ha iniciado el sistema en el mismo momento en que la fecha 
del Reloj de tiempo real (RTC) pasa a medianoche, puede que el 
reloj del sistema muestra valores incorrectos para la fecha o la 
hora. Si reinicia el equipo se habrá solucionado este problema.

Por ejemplo, encienda el equipo y, a continuación, reinícielo en el 
mismo instante en que el reloj interno del sistema pasa de 
11:59:59 p.m. a 12:00:00 a.m. Puede que el sistema muestra un día o 
un año incorrectos hasta que se reinicie el equipo y se reinicie a 
su vez el reloj interno. Es un problema de comprobación y no está 
relacionado con el año 2000.

8. Controlador virtual de DHCP (vdhcp.386)
Winipcfg /all - Las direcciones IP obtenidas el 01/3/2000 o en una 
fecha posterior se considerarán como obtenidas el día anterior. La 
fecha del sistema se mostrará correctamente, pero el cliente de 
DHCP notificará como fecha el día anterior.

Por ejemplo, si conecta con una LAN después del 1 de marzo del 
2000, y ejecuta Winipcfg /all desde Inicio\Ejecutar o Ipconfig /all 
desde una sesión de DOS, la fecha de obtención es el día anterior. 
Después del 28/2/2000, la fecha de la dirección obtenida es el día 
anterior a la fecha esperada.

9. Microsoft Data Access (msdadc.dll, msadce.dll)
El archivo msdadc.dll forma parte de los componentes básicos de OLE 
DB y de Microsoft Data Access Components (MDAC). Si programa con 
ADO y sus recordsets de ADO incluyen tipos de datos de fecha, como 
adDate, adDBDate, adFileTime o adDBTimeStamp, y usa un formato de 
fecha que utiliza puntos como separador de fechas en lugar de 
barras (por ejemplo, 01.01.98 en lugar de 01/01/98), y especifica 
un año menos que 60, puede que la dll de conversión de datos 
(msdadc.dll) traduzca la fecha como una hora. Por ejemplo, puede 
que 01.01.01 (1 de enero de 2001) se convierta a 01:01:01 (30 de 
diciembre de 1899, 1:01:01 a.m.).

10. Microsoft Foundation Class Library (mfc40.dll)
Puede que después del año 2000, los programas que usan la función 
COleDateTime analicen incorrectamente una fecha. Para ver un 
ejemplo de esto después del año 2000, ejecute el archivo de 
información del sistema (msinfo32.exe) desde 
Programas\Accesorios\Herramientas del sistema y guarde el archivo. 
Abra este archivo de extensión .nfo y seleccione Propiedades en el 
menú Archivo. Puede que la marca de fecha muestra una fecha 
incorrecta. Por ejemplo, puede ver 05/02/2000 como 5/02/100.

11. Comando Xcopy de DOS (xcopy32.mod)
Al usar xcopy en modo real con el parámetro opcional /D:fecha, 
xcopy no acepta años en formato de dos dígitos, excepto para el 
intervalo de años 80 a 99. Se mostrará el mensaje "Fecha no 
válida". Al usar xcopy en modo protegido (desde Windows), se 
aceptarán fechas de dos dígitos, pero no se reconocerán como 
pertenecientes al siglo 20 (05/02/01 se verá como 05/02/1901).


El post de hoy me ha salido un poco largo, mañana continúo, y os aseguro que es sorprendente las veces que se ha repetido el error del bisiesto desde poco antes del 2000 hasta el 2009.

Saludos.