RSS 2.0 Atom 1.0 CDF  
JASoft.org - June, 2004
El blog de José Manuel Alarcón Aguín. Programación .NET y mucho más...
 

Cuando se intenta conectar mediante ADO/OLEDB con una base de datos Oracle 9i utilizando los componentes de cliente de esta versión del gestor de datos, se obtiene continuamente un error que dice que las bibliotecas de red y comunicación de oracle no están instaladas. Se trata de un problema bastante desesperante porque no hay pistas de porqué se produce y todo parece estar bien instalado.
El mensaje de error que obtenemos dice:

"The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3 (or greater) client software installation."

El problema se debe a que, tanto las bibliotecas de cliente de Oracle (las que vienen en el CD o el Instant Client que se puede descargar desde la Web de Oracle) como el propio MDAC introducen mal en el registro las entradas que indican al controlador OLEDB qué bibliotecas de Oracle debe utilizar. Lo que está en el registro se corresponde siempre con una versión antigua de Oracle (la 7.0 creo), y por lo tanto no hay forma de hacerlo funcionar.

Para solucionar el problema sólo hay que introducir en el registro las siguientes entradas:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll"

Si queremos usar OLEDB para conectarnos a Oracle desde una página ASP, además de esto es necesario que la carpeta raíz del cliente de Oracle tenga permisos de acceso total para los usaurios IWAM_maquina e IUSR_maquina o no podrán usar las bibliotecas.

Por cierto, hay que reiniciar IIS para que los cambios del registro surtan efecto.

Se puede obtener información adicional de cómo resolver problemas de comunicaciones con Oracle en el artículo "255084 - HOWTO: Troubleshoot an ASP-to-Oracle Connectivity Problem" de la KB de MSDN. También es interesante consultar el listado de los artículos que tratan sobre Oracle y ADO en la KB de MSDN.

Tuesday, June 29, 2004 10:15:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

El error de "tiempo de ejecución de Script superado" es el único que no se puede capturar en una página Web debido a que, si el Script tarda mucho, IIS termina su ejecución y por lo tanto, por definición, no podemos capturarlo desde nuestro propio Script.
Sin embargo existe un truco muy interesante que nos permitirá hacerlo sin problemas.

Se trata de utilizar el modo transaccional de las páginas Web ASP. En este modo, si el script falla por cualquier razón (incluyendo la de que tarde mucho en ejecutarse), el sistema revoca la transacción y llama siempre a la función OnTransactionAbort(), que debe existir en la página. Esto lo podemos aprovechar para hacer lo que queramos tras el error. Por ejemplo, el siguiente código captura el error y muestra un mensaje cuando se produce un "Script timeout":

   <%@ TRANSACTION=Required LANGUAGE="VBScript" %> 'Esto la convierte en transaccional
   <HTML>
   <BODY BGCOLOR="White" topmargin="10" leftmargin="10">
   <font size="4" face="Arial, Helvetica">
   <b>Página transaccional</b></font><br>
   <hr size="1" color="#000000">
   <p>
Este es un ejemplo de transacción abortada por exceso de tiempo </p> <p> Espera a que termine de ejecutarse el bucle infinito... </p> <% Do while 1 = 1 'Bucle infinito Loop %> </BODY> </HTML> <% ' Este es el manejador de una transacción abortada Sub OnTransactionAbort() Response.Write "<p><b>La transacción acaba de abortar porque se superó el tiempo de ejecución del Script</b>." End sub %>

El tiempo máximo de ejecución de un Script (a través de Server.ScriptTimeOut) es de 24 h, es decir de 24x60x60 = 86.400 segundos. Si se intenta ajustar un valor mayor a esta propiedad se produce un error.

 

Friday, June 25, 2004 9:56:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Me ha escrito alguna gente diciendo que no puede descargarse el software anti-mosquitos que publiqué el otro día.

Lo he comprobado y es verdad: parece que los de la página orginal han instalado una protección para evitar el enlace directo a sus descargas y no funcionaban los enlaces.

Los he arreglado para que apunten a la página inmediatamente anterior a la descarga y ahora funcionan sin problemas.

Además he añadido un programa nuevo a la colección.

Míralo dentro de la sección Off-topic de este Blog.

Friday, June 25, 2004 9:29:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Off-Topic  |  Trackback

Microsoft Outlook, a partir de su versión XP, viene con una novedad interesante desde el punto de vista de la seguridad pero bastante molesta en cuanto al uso: prohibe el acceso a medio centenar de tipos de archivo cuando éstos vienen adjuntos en un e-mail, de modo que no hay manera de acceder a ellos aunque queramos.

Ni siquiera da opción a guardarlos a disco para usarlos bajo nuestra responsabilidad.

Esta característica hace que Outlook sea mucho más seguro que antes pero cuando queremos recibir, por ejemplo, un archivo ejecutable proveniente de una fuente de confianza nos veremos incapaces de hacerlo.

Para ahorrarme el problema escribí hace ya un par de años este programa: OXPAS (Outlook XP Attachment Security)
OXPAS permite desbloquear los tipos de archivos que deseemos, de forma que tengamos acceso a ellos bajo demanda y no nos quedemos sin poder acceder a cosas que nos interesan en nuestro propio correo electrónico.

Este programa funciona con Outlook 2002 o superior. Ya verás como te va a ser muy útil. ;-)

Puedes descargarlo usando este enlace (NOTA: si referencias esta herramienta para que otros la conozcan, por favor hazo usando la URL de este post y no apuntando directamente a la descarga, ya que su ubicación es provisional y puede que la cambie, actualizando el documento, eso sí)

Úsalo bajo tu responsabilidad. Si después te entra un virus a mi que no me venga nadie a reclamar nada ;-)

¡Ah! Se me olvidaba: cuando lo escribí me había entrado la vena internacional y como sabía que el programita iba a interesar a mucha gente de todas partes,  lo escribí totalmente en inglés, incluido el archivo 'leeme'. De todos modos necesita pocas explicaciones así que no creo que nadie tenga problema...

Lo tenía en la anterior versión de JASoft.org y ahora había dejado de estar disponible, así que lo he vuelto a poner en circulación.

Tuesday, June 22, 2004 9:01:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Freeware  |  Trackback

Me he encontrado este curioso software navegando por Internet. No es que a mi me sirva de mucho pues en donde yo vivo no hay apenas mosquitos y además debo de tener la sangre muy agria porque a mi no me pican, pero me han llamado tanto la atención que no me he resisitido a ponerlo aquí...

El caso es que me ha llamado poderosamente la atención estos programas traidos de Tailandia: generan una  frecuencia inaudible para los humanos que repele a los mosquitos y evita que nos piquen. ¿no es original?. Y encima gratuitos.

Hasta cierto punto es lógico que los hayan inventado los tailandeses: ahí deben de abundar más los mosquitos que en España los fans del Bisbal ese ;-)

En fin, si alguien los prueba con bichos de verdad les agradecería que, por curiosidad, me dejaran un comentario contando su experiencia.

Los tenéis en los siguientes enlaces (las páginas están en tailandés, pero para descargarlos sólo hay que pulsar sobre download.thaiware.com al final de cada página y ya está. No puedo poner los enlaces directos como tenía antes porque han colocado una especie de Anti-leech que no permite la descarga directa):

· SEA Anti Mosquitoes XP 2.0: http://www.thaiware.com/main/info.php?id=2011
· Anti Mosquitoes All OS: http://www.thaiware.com/main/info.php?id=1556
· KP-Anti Mosquitoes: http://www.thaiware.com/main/info.php?id=2227

Y me pregunto yo: los ultrasonidos esos ¿los oirán los perros también? Contadme, contadme.

Monday, June 21, 2004 9:41:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Off-Topic  |  Trackback

Esto es un truco bastante útil para ahorrar tiempo programando en C# si usas Visual Studio .NET 2003 y necesitas implementar interfaces en tus objetos.

Cuando vas a crear una clase que implementa una o más interfaces, deberás obviamente generar todos los métodos de éstas en la nueva clase. Es esta una tarea muy tediosa si la interfaz en cuestión tiene muchos métodos puesto que tienes que escribirlos a mano.

Visual Studio 2003 tiene una característica nueva que es muy fácil que se nos pase por alto y es que, cuando escribes el nombre de la interfaz en la lista de derivación de la clase ( o sea, después de los consabidos dos puntos) basta con presionar la tecla TAB para que se genere el esqueleto de la interfaz automáticamente por nosotros y dentro de una región ya "encogida":

TAB Interfaz

Pulsa sobre la figura para ampliarla

Aunque te lo indica el entorno mediante un "Tooltip" es bastante fácil pasarlo por alto y hacer lo mismo de siempre. Esto puede ahorrarte mucho tiempo.

Friday, June 18, 2004 11:46:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Microsoft acaba de medio-publicar un nuevo ejemplo que es realmente interesante. Y digo medio publicar porque en el momento de escribir esto todavía no es oficial y de hecho los enlaces de la portada no funcionan bien. Sin embargo es fácil conseguir acceder a los archivos y bajarse la aplicación.

Se trata de un ejemplo bastante extenso de un servicio a priori simple: la construcción de una galería de fotos e imágenes en Internet. Sin embargo han construido un ejemplo con vocación empresarial y nada básico que conlleva la programación de aplicaciones de escritorio, aplicaciones Web, aplicaciones para la Compact framework y por supuesto servicios Web.

En la siguiente figura podéis ver algunas capturas.

El ejemplo está lleno de detalles de calidad y código interesante (por ejemplo código para manipulación de imágenes o código para evitar los SPAM-Bots). La aplicación de Pocket PC sincroniza y guarda para visualizar off-line las imágenes e incluso permite hacer anotaciones sobre ellas.

Puedes encontrar la página principal en: http://msdn.microsoft.com/smartclient/codesamples/fotovision/
Sin embargo los enlaces que allí hay no funcionan bien, pero no te preocupes, los accesos directos son los siguientes:

¡Qué la disfrutes!

Wednesday, June 16, 2004 10:12:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

He encontrado una página Web Anti-Linux que es muy graciosa.

Es de lo más cutre que te puedas imaginar y exageran un montón, pero te puedes echar unas buenas risas leyendo las barbaridades que pone (si usas Linux eres un "comunista" y cosas por el estilo :-DDD).

Algunas imágenes de muestra:

   

De coña...

Puedes acceder a ella mediante este enlace: http://www.startnet.pwp.blueyonder.co.uk/antilinux/

¿Tendrá un fondo de verdad? :-D

Tuesday, June 15, 2004 10:57:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Off-Topic  |  Trackback

Raro pero cierto...

Resulta que acabo de descubrir un personaje en Internet (danés para más señas) que creó en su día un compilador de ensamblador para ASP.NET. De este modo los forofos de este lenguaje pueen crear páginas Web con instrucciones tan cómodas como MOV, JMP y compañía. Por si a alguien C# le parecía demasiado sencillo:

Según el propio autor no es que sera muy útil pero desde luego es un experimento interesante. El compilador reconoce la sintaxis de ensamblador y crea a partir de ella código IL de la plataforma .NET.

Desde su página web se puede descargar libremente (ocupa sólo 14 KB).

Por lo visto ya hace tiempo que lo tiene pero yo no lo conocía. ¿Alguien sabía de su existencia? ¿Alguien lo ha probado aunque sea por curiosidad? Espero tus comentarios...

Monday, June 14, 2004 6:34:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Respecto a la nota que publiqué hace una semana sobre la disponibilidad del nuevo analizador de buenas prácticas para SQL Server, quiero añadir ahora un apéndice.

Todos los interesados en esta estupenda herramienta estarán interesados también en saber que en la página Web de SQL Dude acaban de publicar una lista de todas las reglas que incorpora la herramienta con una explicación de cada una.

La mar de interesante. Echadle un vistazo.

Saturday, June 12, 2004 4:07:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Noticias Programación  |  Trackback

Parece ser que, por fin, ASP.NET en Whidbey añade soporte para el protocolo FTP a través de un par de clases llamadas FtpWebRequest/FtpWebResponse y que son análogas a las de HTTP ya existentes. Éstas soportan también la transferencia cifrada a través de SSL. Lo han confirmado un par de personas del equipo de desarrollo de Visual Studio.

Hasta ahora para poder descargar archivos a través de FTP desde nuestros programas había que recurrir a componentes de otras empresas o construirnos unos propios. Por cierto, y respecto a esta última opción, en la KB de MSDN existen sendos artículos que explican cómo hacerlo en C# (HOW TO: Write Pluggable Protocol to Support FTP in Managed Classes by Using Visual C# .NET) y en VB.NET (HOW TO: Write Pluggable Protocol to Support FTP in Managed Classes by Using Visual Basic .NET).

En fin, una buena noticia para los desarrolladores Web.

Friday, June 11, 2004 8:09:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Noticias Programación | Programación  |  Trackback

Hoy se ha publicado en MSDN un excelente artículo de Scott Mitchell de 4GuysFromRolla.com en el que explica con todo lujo de detalles el funcionamiento de ViewState en las páginas ASP.NET.

Como su propio nombre indica ViewState sirve para almacenar el estado de los controles de una página entre las diferentes llamadas consecutivas que se hagan a la misma. En él se basa el funcionamiento de las páginas ASP.NET y es el que consigue que la programación de éstas se asemeje tanto a la tradicional para formularios de escritorio.

El artículo presenta todos los conceptos fundamentales sobre el ciclo de vida de una página, el funcionamiento detallado de ViewState y cómo lo podemos aprovechar para otras cosas aparte de las obvias. La parte final profundiza mucho más en el asunto mostrando cómo decodificar el contenido de una cadena ViewState obtenida a partir de cualquier página. Precisamente por este mismo motivo (más de uno se asustará al ver lo fácil que es) ofrece un sistema interesante para protegerse de las modificaciones no autorizadas del ViewState que desde el punto de vista de seguridad puede ser muy importante.

Un artículo más que recomendable para añadir a tu colección.

Thursday, June 10, 2004 8:49:00 AM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Este próximo SP2 para Windows XP introduce cambios bastante importantes respecto a la seguridad y las comunicaciones. Éstos harán que muchas aplicaciones poco cuidadas desde el punto de vista de la seguridad dejen de funcionar correctamente. Ya hace un par de meses Microsoft publicó documentación explicando estos cambios y cómo adaptarse a ellos.

Ahora se acaba de publicar en MSDN un documento, "How to Make Your Web Site Work with SP2", que está especialmente dirigido a todos aquellos que nos dedicamos a la programación de aplicaciones Web, ya que Internet Explorer ofrece diversos cambios de seguridad que nos afectan directamente.
En este documento se trata en forma de FAQ aquellas particularidades que los programadores web debemos tener presentes en relación con cuestiones como los mecanismos de descarga de archivos, controles ActiveX, ventanas pop-up, Java, diálogos HTML, posicionamiento de ventanas y otros aspectos importantes.

Desde mi punto de vista es especialmente destacable que, ahora, casi todo aquello que no inicie un usuario con una acción está prohibido, como las ventanas pop-up o las descargas de archivos mediante redirección.

No dejeis de echarle un vistazo.

Tuesday, June 08, 2004 3:51:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Windows Media Home

El renovado Windows Media Player 10, cuya versión final será lanzada al mercado a finales de este año, incluye cambios considerables en la forma en que la música, vídeos y otros archivos digitales pueden ser organizados y recuperados. Pero los más importantes serán invisibles a la mayoría de los usuarios.

El software, que incorpora los últimos avances de Microsoft respecto a las herramientas para gestionar los derechos digitales y una nueva tecnología que permite a los ordenadores comunicarse con dispositivos como reproductores MP3, se ha convertido en la respuesta de la compañía al gran éxito cosechado por Apple con iPod.

El nuevo software soportará nuevas características referentes a la gestión de derechos digitales que permiten que contenidos basados en suscripciones, como los de Napster, puedan ser reproducidos en dispositivos portátiles.

La beta ya está disponible desde la página de Microsoft.

Monday, June 07, 2004 4:21:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Mundo TIC  |  Trackback

Hace unos días Microsoft puso a disposición pública la herramienta gratuita SQL Server Best Practices Analyzer.

Como su propio nombre indica se trata de una herramienta que se encarga de analizar bases de datos de SQL Server para comprobar que se adecuan a las prácticas recomendadas de diseño, rendimiento, mantenimiento y seguridad entre otras categorías. Es una herramienta especialmente útil para los programadores ya que ayuda a optimizar la capa de datos de nuestras aplicaciones con poco esfuerzo. Además se complementa muy bien con Microsoft Baseline Security Analyzer para realizar un análisis completo de cualquier servidor.

Es posible analizar varios servidores SQL simultáneamente, agrupando aquellos que nos interesen bajo un nombre común para su posterior reutilización. Del mismo modo definimos nuestras propias reglas de análisis eligiendo cualquier combinación de criterios de entre todos los disponibles para análisis en la herramienta. Dado que las reglas se almacenan en una base de datos y se verifican a través de DLLs .NET las capacidades del producto se irán ampliando en el futuro con nuevas reglas.

Dispone de una sencilla interfaz híbrida que combina páginas HTM dentro de una ventana de escritorio para conseguir un aspecto muy agradable y fácil de usar. Los informes generados se almacenan en formato RDL y por lo tanto son compatibles con Reporting Services, por lo que se pueden distribuir sin dificultad a toda la empresa:

Pulsa para ampliar 

Merece la pena destacar que, entre las verificaciones que realiza, se encuentran una serie de reglas para analizar la compatibilidad de nuestra base de datos con la próxima versión de SQL Server 2005 (Yukon). De esta forma no nos llevaremos ninguna sorpresa cuando aparezca en el mercado.

Se puede descargar gratuitamente desde el portal de SQL Server en la Web de Microsoft: www.microsoft.com/sql.

Saturday, June 05, 2004 6:44:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Noticias Programación  |  Trackback

En la plataforma .NET no había hasta ahora una forma sencilla de ejecutar desde nuestros programas otros procesos u aplicaciones utilizando las credenciales de otros usuarios. Esto puede ser útil si hacemos, por ejemplo, un programa que periódicamente lance unas determinadas tareas de administración o deba conectarse a una base de datos suplantando a un usuario concreto para realizar ciertas actualizaciones de datos.

la única forma de conseguir esto en las versiones 1.0 y 1.1 de .NET consiste en recurrir a la API de Windows a través de código no manejado (P/Invoke). Sin embargo en la versión 2.0 de la plataforma, la clase Process incluye tres nuevas propiedades que, con solo ajustarlas, permiten suplantar a cualquier usuario válido a la hora de lanzar un proceso.

Dos de ellas son Domain y UserName. Tal y como se puede suponer sirven simplemente para indicar el dominio al que pertenece el usuario que queremos suplantar y el login de éste.

la tercera propiedad es Password. Esta sirve, en efecto, para asignar la clave del usuario. Sin embargo su uso no es tan directo como asignarle una cadena de texto ya que, en este caso, la propiedad es de tipo SecureString.

SecureString es una nueva clase disponible también en .NET 2.0 que como su propio nombre evidencia se utiliza para almacenar de manera segura claves en memoria, para lo cual usa la DPAPI. Se puede crear un SafeString pasándole como parámetros en el constructor una referencia a una matriz de caracteres y la longitud de ésta. También tiene otros métodos para añadir letras al final, quitarles, etc...

Por último para que el truco funcione hay que evitar que el proceso se incie usando la función de Windows ShellExecute. Esto se consigue estableciendo la propiedad UseShellExecute a False.

En el Blog .NET Security de Shawn se puede encontrar un ejemplo concreto del uso de SecureString y de cómo iniciar un proceso que suplante a un usuario con estas nuevas propiedades de la clase Process.

Friday, June 04, 2004 8:54:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Programación  |  Trackback

Paul Allen fundó Microsoft en el año 1976 junto a Bill Gates. Diez años más tarde, en 1.986 tras su salida de Microsoft, fundó también una empresa llamada Vulcan Inc. cuya misión es la de desarrollar todo tipo de iniciativas de gran impacto que incidan directamente en la mejora de la calidad de vida de las personas, en su aprendizaje y en su la manera de hacer negocios. El perfil de Paul Allen no tiene desperdicio.

Una de las empresas del complejo Vulcan es FlipStart. Acaban de presentar un impresionante ordenador portátil basado en Windows que nos ha dejado muy impresionados. Para muestra un botón:

Flipstart

Se trata de un ordenador supercompacto que combina las mejores características de un PDA o un teléfono móvil con las de un ordenador se sobremesa. Está basado en Windows XP pero se trata al mismo tiempo de un dispositivo "allways-on", es decir, que al igual que un PDA no es necesario iniciar el sistema cada vez que lo queremos utilizar ya que siempre está disponible.
Tiene un peso reducido, un procesador Transmeta Crusoe de 1 GHz, 256 MB de RAM, 30 GB de disco duro, red inalámbrica incorporada y una pantalla con una nitidez y capacidad de resolución impresionantes para su tamaño.

Una de las cosas que más nos han impresionado es su pantalla externa de consulta que permite, sin tener que abrir el ordenador, consultar vistas previas del correo electrónico según entra, reproducir música y otras muchas funciones, casi como si fuera un teléfono móvil.

Por supuesto se puede conectar a un monitor, teclado y ratón externos y utilizarlo como un ordenador normal cuando estemos en la oficina.

En resumen: IMPRESIONANTE.

Todavía no hay precio ni fecha para su venta masiva pero en su página Web podemos registrarnos para mantenernos informados. Por cierto, si la visita no deje de ver la presentación detallada del producto en versión Flash que allí hay. Merece la pena.

Más información: Página web de FlipStart

Thursday, June 03, 2004 6:29:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]   Mundo TIC  |  Trackback

Este Blog sustituye a la antigua página personal sobre software de Jose Alarcón, JASoft.org.

Ya no es posible acceder a los enlaces a artículos o a la descarga de los programas gratuitos que había en la anterior edición del sitio. Lo siento. De todos modos trataré de ir publicando aquí las más interesantes o las que más éxito tuvieron en la edición anterior. Como contrapartida intentaré que esta página se actualice con mucha más frecuencia que antes.

Permanece atento a este nuevo canal ;-)

En esta página se publicarán con cierta frecuencia todo tipo de noticias, trucos, enlaces, descargas... y, en definitiva, cosas útiles relacionadas con el mundo de las Tecnologías de la Información en general y de la programación en particular. Se hará especial hincapié en todo lo referente a la programación para Internet bajo plataformas de Microsoft, tanto ASP.NET como ASP tradicional.

Recuerda que puedes acceder directamente a esta página a través de WWW.JASOFT.ORG

Espero que te resulte de utilidad.

Thursday, June 03, 2004 6:02:00 PM (Hora de verano romance, UTC+02:00)  #    Comments [0]    |  Trackback
Copyright © 2008 José Manuel Alarcón Aguín. All rights reserved.