Páginas

jueves, 21 de octubre de 2010

Tech Days Chile

El 26 de Octubre estaré en Santiago de Chile en Tech Days entre otras impartiendo una sesión sobre Cuadros de mando integral, SQL Server 2008 y SharePoint 2010.

 

http://www.techdays.cl

sábado, 25 de septiembre de 2010

Como buscar palabras o frases en documentos en Windows 7

Hola, probablemente a todos nos habrá ocurrido alguna vez, que al tratar de localizar en nuestro equipo con windows 7 una palabra o una frase en un documento,  no habéis encontrado esta opción de búsqueda. Recordareis la opción de buscar palabras o frases en documentos de la interfaz de Windows XP, que como podréis ver en las figuras 1 y 2 eran muy fáciles de localizar, haciendo clic en inicio y buscar:



Figura1






Primero pulsábamos sobre buscar  y se abría la ventana de búsqueda de la Figura 1.
   
Figura 2






Después podíamos iniciar una búsquedas por nombre de documento, buscar  una palabra o una frase contenida en un documento, o especificar cuando fue modificado, su tamaño y algunas otras opciones avanzadas, como muestra la figura 2.












  Bien, pues en Windows 7 estas opciones siguen disponibles, pero algo menos evidentes, para buscar por palabras o frases contenidas en un documento, abrimos el explorador de Windows  y en la esquina superior derecha escribimos:  "content:"  y palabra o frase a buscar,  como se muestra en la figura 3 donde buscamos (sin tilde)  la palabra Curriculum.
Si tu sistema operativo fue instalado en idioma español, deberas probar con  "contenido:" en lugar de "content:"

Figura 3



También podemos usar opciones más avanzadas, como buscar por fecha en la que fue obtenido un documento de tipo fotografía  junto con el autor, como muestra la figura 4. 
Figura 4



 
Todo esto y mucho más,  está disponible en la ayuda de Windows bajo el tip "Advanced tips for searching in Windows" por supuesto, pero por si alguien quiere abreviar y buscar esta información en la web,  aquí la encontrara disponible y traducida.
 Espero que os sirva de ayuda, hasta pronto.


domingo, 12 de septiembre de 2010

El equipo de SSIS comenta algunas posibles novedades de la siguiente versión de SSIS

Hola ,para esos a los que os gusta ir por delante, os dejo un enlace al blog del equipo de desarrollo de SSIS, en el que comentan algunas novedades interesantes que "podrían" estar disponibles para la siguiente versión (Esta en ingles).

http://blogs.msdn.com/b/mattm/archive/2010/08/25/upcoming-product-changes.aspx

Espero que os gusten, hasta pronto.

sábado, 11 de septiembre de 2010

Trucos útiles para la configuración de un cluster de SQL Server 2005

Hola de nuevo, me he animado a escribir esta entrada no muy larga, aprovechando una intervención en un cliente, al que se le había roto uno de sus nodos de un cluster de SQL Server 2005, hace ya bastante tiempo realicé algunas instalaciones de este tipo, y había sufrido algunos errores durante la instalación que hoy me han ayudado a agilizar el tema, he pensado que quizá dejando constancia de un par de consejos pueda ayudar a otros que se vean en las mismas circunstancias. 

En este caso concreto he tenido que eliminar uno de los nodos del Cluster y añadir otro nuevo, el propio proceso de configuración es bastante trivial,  Microsoft ha publicado unos White Paper's para 2005 y 2008 donde se explica muy bien el proceso paso a paso, los documentos están  disponibles para descargar en los enlaces al final de este post.

Siguiendo la guía primero eliminamos el nodo roto mediente el Setup de SQL en el único nodo disponible del cluster, y a continuación lo eliminamos también del administrador de cluster mediante un evict node. Ya tenemos el servicio limpio.

Después de reinstalar de nuevo el sistema operativo, en mi caso un Windows Server 2003 R2 x64, configurar redes , presentar discos, habilitar MSDTC y otras verificaciones de red entre los nodos para red privada y pública, contra el dominio, DNS etc etc etc, y al final añadir el nodo al Cluster.

Esta parte tampoco presenta ninguna dificultad, un clic con el botón derecho del ratón sobre el nombre del Cluster  en el administrador de Cluster, y añadir nodo, hasta ahora todo bien y fácil. Pero sin dudarlo la  parte más delicada es la  ejecución de  la instalación de SQL Server 2005, esta se hace desde el  panel de control , añadir o quitar programas, SQL Server, etc etc, en el Paper viene muy bien detallado así que no me extiendo con eso, en esta parte es donde pueden ser útiles estos consejos:

1. No mantener abiertas conexiones con Remote Desktop en los nodos remotos(el que se estaba agregando al Cluster en mi caso), no es necesario y se generan errores en el Setup de SQL Server 2005 que detienen la instalación.

2. No utilizar el soporte de instalación que viene en dos CD's,  titulados CD1 y CD2, me ha ocurrido varias veces que durante la instalación el proceso se interrumpe para pedir el CD2 y ya nunca continua, hay que cancelar y comenzar de nuevo, si vais a instalar  o configurar un Cluster es mejor hacerlo desde un DVD, el producto estaba disponible en los dos formatos.

3. El proceso de Setup falla reportando que uno de los nodos remotos no tiene iniciado el servicio de programador de tareas, pero por más que lo revisamos vemos que si esta iniciado, la solución pasa por eliminar una tarea programada que genera el Setup con el nombre de proceso de configuración de SQL Server,  y que se queda guardada a fuego, sin más se elimina y después cerramos la sesión remota contra ese nodo, y repetimos el proceso de instalación según se indica en el Paper.

Enlaces para la descarga de los White Paper:

SQL Server 2005 Failover Clustering White Paper
http://www.microsoft.com/downloads/details.aspx?FamilyID=818234dc-a17b-4f09-b282-c6830fead499&displaylang=en


SQL Server 2008 Failover Clustering White Paper
http://download.microsoft.com/download/6/9/D/69D1FEA7-5B42-437A-B3BA-A4AD13E34EF6/SQLServer2008FailoverCluster.docx

Hasta pronto.

sábado, 21 de agosto de 2010

Validación de dominios en direcciones de correo Electrónico

Hola finalmente me he decidido a probar a crear y mantener un blog, mi primera intención es poder publicar cosas más o menos relacionadas con tecnología (Windows, SQL Server....) , pero no restringido sólo a este área por lo en alguna ocasión podréis encontrar cosas menos técnicas y más mundanas.

Pero para comenzar algo bastante técnico, un amigo me pregunta  como se podría validar si el dominio de un correo electrónico proporcionado como entrada de registro o ingreso de una aplicación es bueno o no, la aplicación en este caso esta  basada en SQL Server aunque creo que sería fácil  implementarla en otros Motores de bases de datos. Esto es algo que ya había hecho hace algunos años y que he rescatado de las cosas casi olvidadas.

Por centrar un poco mas el problema lo que buscamos es un método para que una vez que un usuario proporciona una dirección de correo electrónico en un formulario de ingreso  inmediatamente podamos validar que el dominio es un dominio de correo electrónico valido, evitando así intentos de registros con direcciones incorrectas ya sea por error o intencionadamente.

Para resolver el problema nos basamos en el comando NSLOOKUP que parametrizamos mediante modificadores en una consulta  para averiguar si existe configuración MX del dominio en cuestión, la consulta en la linea de comando seria algo así :

nslookup -q=mx  hotmail.com 

La consulta en la linea de comando y su salida en la figura 1:

Figura 1

Cuando para el dominio proporcionado como parámetro existe configuración MX (Correo Electrónico) el retorno del comando es como el de la Figura 1. Si por el contrario el dominio no existe por ejemplo  (hotmail.ocm)   o no tiene configuración MX la respuesta seria como en la figura 2.


Figura 2

Bien partiendo de estas salidas distintas en caso de domino correcto o dominio incorrecto , crearemos un procedimiento almacenado capaz de  retornar si el dominio existe o no.

Por sencillez he creado una tabla con un solo campo para insertar el resultado de ejecutar el comando NSLookup que sera posteriormente analizado por el propio procedimiento almacenado para determinar si el dominio es correcto o no,  el código para habilitar la ejecución de XP_CMDShell y crear los objetos necesarios los listo a continuación:

************* Código **************
-- Ojo Esta opción se encuentra deshabilitada por defecto por política de seguridad,

-- evaluar detenidamente las posibles vulnerabilidades  antes de habilitarla definitivamente en la instancia.

-- Para permitir ver opciones avanzadas.
EXEC sp_configure 'show advanced options', 1

GO

-- Para actualizar los valores de configuracion actuales.
RECONFIGURE

GO
-- To enable the feature.

EXEC sp_configure 'xp_cmdshell', 1

GO

--

RECONFIGURE

GO
USE tempdb -- permite crear el procedimiento en entorno volátil antes de implementar

GO
create table output_tmp

(texto varchar(256))

GO
create proc Usp_valida_domain

@domain varchar(50) --ojo algun dominio podría exceder este tamaño y no ser validado por truncado

as

SET NOCOUNT ON
declare @comand varchar(256)
truncate table output_tmp

set @comand='Nslookup -q=mx '+@domain

DECLARE @SQLString NVARCHAR(4000)

Set @SQLString='exec master.dbo.xp_cmdshell '+char(39)+@comand+char(39)

--insert output_tmp

exec sp_executesql @SQLString
select @SQLString
if ( select distinct top 1 patindex('%mail exchanger%',texto) -- con que exista una sola entrada es suficiente
from output_tmp
where patindex('%mail exchanger%',texto)<>0

group by patindex('%mail exchanger%',texto)) <> 0 -- El texto mail exchanger determina la existencia de configuracion MX

begin

print 'Dominio valido' -- las salidas se pueden modificar para que sean 0/1 según sea necesario su uso

end

else

print 'Dominio no valido'

go
exec Usp_valida_domain 'yahoo.es' -- test con dominio correcto
exec Usp_valida_domain 'yahoo.e' -- test con dominio incorrecto

*************** CODIGO *****************

 Comentar por ultimo que se puede especificar un tiempo de TimeOut par la consulta mx ya que es posible que el servidor DNS que realiza la consulta funcione con algo de retraso y no valide dominio en tiempo, de esta forma si pasamos el tiempo de TimeOut como parámetro con -TimeOut=10 el servidor DNS que realiza la consulta se tomara 10 segundos para contestarnos que el dominio hotmail.ocm no es valido.


Figura 3


Espero que encontréis esta entrada de utilidad.

LinkedIn