Friday, April 13, 2007

Windows Vista Wallpapers

Aquí algunos Wallpapers que no fueron incluidos en la versión final de Windows Vista. Son del fotógrafo Hamad Darwish, Enjoy!

Thursday, April 12, 2007

Process Explorer

Sigues usando Task Manager? Microsoft compro el producto hace 1 o 2 años y la utilería es FREE! !
Échale un vistazo, es una utilería que puede sustituir el tradicional TaskManager del sistema operativo Windows, lo único que tienes que hacer es bajarlo e instalarlo!! Jejeje!, primer paso y después seleccionar Options > Replace Task Manager, y listo! Este entrara en función en lugar del TaskManager.
Es muy practico ya que puede monitorear el uso de memoria para cada uno de los procesos, por ejemplo:



  • Si estas desarrollando un servicio del sistema operativo, es muy útil saber como este se comportara con el manejo de memoria, o saber si por ahí algo anda mal.

  • A veces te sucede que quieres saber el nombre del archivo que se esta ejecutando en alguna ventana de tu escritorio, o simplemente no recuerdas el directorio de donde se encuentra el ejecutable. Dentro de la aplicación en el tool bar principal seleccionas Find Window’s Process, y lo arrastras a la ventana donde se esta ejecutando la aplicación de tu interés, automáticamente Windows Explorer selecciona el proceso que esta utilizando esa aplicación.

  • O tienes el siguiente mensaje "Cannot delete file because another process is using it", con esta utileria seleccionas choose Find > Find Handle or Dll, tecleas el nombre del archivo y los buscas, como resultado podrás ver que procesos están usando el archivo.

Trae muchas opciones que te pueden ser útil, puedes obtener mayor ayuda desde el sitio de Microsoft.


Tuesday, March 20, 2007

Programacion para niños

Si quieres inducir a un pequeño al mundo de la programación aquí están algunos recursos de Microsoft muy buenos.

Wednesday, March 07, 2007

Funciones pwdEncrypt y pwdCompare

Son funciones no documentadas de SQL Server, que sirven para encriptar información (pwdencrypt) y la otra para comparar un string no encriptado (pwdcompare), con la representación de un string encriptado.

No tendremos forma de decodificar en base al string generado. Pero nos podemos apoyar de la función pwdcompare, para validar si el string que tenemos de información pertenece al string encriptado o no. Si es igual regresaria un 1, de lo contrario un 0.

Lo malo como son funciones no documentadas, están no pueden ser soportadas en futuros releases de SQL server.

Si quieres guardar la información en una tabla de lo que genera pwdencryp, puedes utilizar un campo tipo varbinary(255).

Ejemplo:
select pwdencrypt('password')
select pwdcompare('password', 0x01004816A32F93C56C37E

25B074BEA94254AE005093173
984A4947EEA0DA47328628D47
AC4737B331292CCB54352)


En el blog Alexander Gladchenko de muestra como los valores arrojados de SQL Server 2000, son aceptables para SQL Server 2005.

Tuesday, February 20, 2007

SQL Server Reconstruir indices

Enseguida se presenta una solución alternativa para reconstruir los índices de una base de datos. Es un procedimiento simple y muy eficiente en cual tu tienes el control de lo que SQL Server va estar realizando en base de datos.
Solo tendrían que inicializar la variable con el nombre de la base datos y el select de la primer línea con el nombre de su base da datos.

Espero sea útil, y si tienes alguna otra alternativa compártela ! :)


--Cursor to get tables names
declare usertabs cursor for select name from EWIMS_ARCHIVE.dbo.sysobjects where xtype = 'U'
declare @strTableName varchar(255)
declare @strDBName varchar(64)
declare @strFullTableName varchar(255)
set @strDBName = 'EWIMS_ARCHIVE'

-- Used to format messages
declare @crlf varchar (2)
set @crlf = char(13) + char(10)
--Print begin date & time
print getdate()
open usertabs

fetch next from usertabs
into @strTableName
while @@FETCH_STATUS = 0
begin
set @strFullTableName = @strDBName + '.dbo.' + @strTableName
print 'dbreindex ('+ @strFullTableName+ ','''',90) with no_infomsgs'
--Rebuild index(es)for the table
dbcc dbreindex (@strFullTableName,'',90) with no_infomsgs
if @@error <> 0
begin
RAISERROR('An error occurred rebuilding index',11,1)
end
else print 'Index successfully re-built'
print @crlf
fetch next from usertabs
into @strTableName
end
close usertabs
deallocate usertabs
--Print end date & time
print getdate()

Microsoft lanza Service Pack 2 para SQL Server 2005

Microsoft SQL Server 2005, SP 2 habilita a sus clientes tomar ventaja de los nuevas funcionalidades dentro de Windows Vista y Office 2007.
Las areas donde hay mejoras son:
  • Analysis Services
  • Database Engine
  • Integration Services
  • Replication
  • Reporting Services
  • Shared Tools

Tuesday, September 05, 2006

Hora de un ping…

Se presento que teniamos que dejar monitoreando por un lapso de 24 hrs unos IP’s en especifico, y si había algún timeout saber el horario en que se presento. Pues bueno no teníamos una herramienta comercial para realizar esto, así que un pequeño batch recursivo soluciono nuestro requerimiento (looping.bat):

Echo %TIME%>>TS1log.txt
ping 10.20.13.13>>TS1log.txt
Echo %TIME%>>TS2log.txt
ping 10.20.13.35>>TS2log.txt
Echo %TIME%>>TS3log.txt
ping 10.20.13.63>>TS3log.txt
loopping.bat

CRC Cards.

CRC (Class, Responsibilities, and Collaborators), método que se basa en el uso con tarjetas. Un método muy practico para definir tus clases y la interacción que hay entre ellas. Puedes realizar tu análisis y diseño usando este método, y así identificar las clases que compondrán tu sistema.

No requieres de una computadora o sistema para llevarlo acabo. Permite a los participantes experimentar como va a trabajar el sistema.

También es una herramienta muy útil para enseñar el paradigma orientado a objetos. Es algo informal pero muy practico y obtienes resultados tangibles rápidamente.


Es crear tarjetas que representaran tus clases, por medio de escenarios basados en requerimientos del sistema, que van modelando el comportamiento de tu sistema o solución.
En la sesión cada una de las tarjetas representa una clase identificada, y cada tarjeta se le definen sus responsabilidades y las clases que se utilizaran en colaboración.


Hay muchos sitios que tocan el tema entre ellos: Introducción a CRC, Aquí se encuentra un buen ejemplo de un modelo CRC.
Análisis y Diseño orientado a objetos utilizando CRC.


Diseño de tarjeta:





Wednesday, July 05, 2006

SQL server Monitoreo de Jobs

Requieres realizar un monitoreo de Jobs, a un servidor de producción. El problema es que no eres el dueño de los Jobs, tienes tu propia cuenta solo de lectura a la base de datos de tu proyecto. El problema es que estos Jobs no los puedes visualizar a través de la consola de SQL Server.

Se me presento esta situación el cambio de owner de los Jobs seria muy difícil y podrías afectar su ejecución ya que la es de solo lectura.
Así que la mejor solución fue realizar una consulta a las tablas de Jobs, que mantiene en la base MSDB:

select b.name, b.enabled, b.description,
a.instance_id, a.step_id, a.step_name, a.message, a.run_status, a.run_date,
a.run_time, a.server
from msdb..sysjobhistory a inner join msdb..sysjobs b on a.job_id = b.job_id
order by b.name, a.run_date



Esta base de datos conservan la información utilizada por SQL Server y sus componentes, pero estas información no debe ser alteradas directamente por ningún usuario. Sin embargo muchas de las columnas o campos que se encuentran en estas tablas no se encuentran documentados.

La información que conserva esta base de datos es información es utilizada por SQL Server internamente. Conserva información del diseño de las bases, Store procedures, funciones, Jobs, catalogo de funciones del API, DTS, entre otras cosas.
Así que con un acceso de solo lectura a MSDB se soluciono.


Tuesday, July 04, 2006

Verificando un puerto...

Un tip. . . como validar si en el ambiente que estas trabajando puedes acceder un puerto de una PC o Server remoto. Algunas vez te has preguntado cual es la manera mas rápida de saber si tienes acceso a un puerto?, se encuentra activo?. Utilizando el ping puedes saber si tu servidor o PC se encuentra activo, pero no puedes saber si el puerto 7020 esta abierto.
Desde el command prompt, ejecutando un Telnet a ese puerto, Ejemplo:

Telnet 10.20.143.234 7020.

En esta caso queremos validar si el puerto esta 7020, esta activo en esa PC. El comando en caso de no poder abrirlo te enviaría el mensaje, que no puede abrir el puerto y ha fallado la conexión.
Si estas tratando de alcanzar un puerto http. Ejemplo: Telnet 10.20.143.234 80 Une vez conectado tecleas “GET /”. Si te regresa un mensaje en HTML, ahí se encuentra un web Server.

Esta es una manera rápida, barata de verificarlo, ya que existen otras utilerías en el mercado, que te dicen los puertos disponibles de acuerdo al IP que proporcionas.


Ahora si quieres saber los puertos activos de tu PC y quieres saber que aplicación esta utilizando esos puertos, hay una utilería FPort
y es gratis, que te ayuda realizar esta tarea.