viernes, julio 11, 2008

Detectar Shutdown de Windows desde un programa en VB 2003 .NET

Hablemos un poco de programación o software.. solo quiero documentar este problema que tuve cuando estaba implementando una característica a un programita que estaba haciendo, la característica es que, como el programa queda cargado en memoria, y muestra un icono en el 'tray', requería que cuando se hiciera log-off o shutdown a la computadora, el programa terminara.
El problema que existía es que cancelaba el apagado del sistema, hasta que primero se cerrara la aplicación.
Bien, como esa característica ya la había implementado en otros programas pero en versiones anteriores de VB, creí que podría implementarla mas o menos de alguna forma parecida. Pero no... tuve que experimentar otras cosas diferentes en VB2003, pero no me funcionaban, busque en la MSDN de Microsoft, pero no encontré algo que me sirviera. Así que, haciendo una búsqueda rápida en la red, encontré lo siguiente:

Esta es parte de la implementación, en el evento 'closing' de la forma:
If systemShutdown = False Then
e.Cancel = True
With Me
.WindowState = FormWindowState.Minimized
.Hide()
.tsrIcon.Visible = True
End With
Else
e.Cancel = False
End If
End Sub

Y este es el codigo "clave" para que lo anterior funcione:

Private Shared WM_QUERYENDSESSION As Integer = &H11
Private Shared SystemShutdown As Boolean = False

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_QUERYENDSESSION Then
'MessageBox.Show("queryendsession: this is a logoff,shutdown, or reboot")
systemShutdown = True
End If
' If this is WM_QUERYENDSESSION, the closing event should be fired inthe base WndProc
MyBase.WndProc(m)
End Sub 'WndProc

Si, si ya se que es realmente simple, y breve la solucion, y es precisamente por eso que quiero dejarlo anotado, que a veces las cosas que pudieran parecer simple y buscamos respuestas complejas, realmente la solucion es simple.

sábado, julio 05, 2008

Entrenamiento "Extremo" a Policías.

Hace algunos dias escuché y ví en las noticas que a un grupo "selecto" de la policía de León Guanuajuato se les estaba dando entrenamiento extremo; En una entrevista, el director de la policía reconoció, y aceptó dicho entrenamiento. Mencionó que es un entrenamiento estratégico y esto para resistir la tortura que pudieran recibir los policías en manos de los criminales.

Este caso me llama la atención, ya que este entrenamiento se le está dando con un enfoque de que la policia es perdedora, o entrenando a perdedores. En otras palabras se esta planeando estratégicamente para perder.
Este entrenamiento ya da por sentado que al policia se le va a capturar y que se le va a torturar.

Ante esto, saltan varias preguntas... por ejemplo, este entrenamiento los hará mas éticos? atraparán mas criminales?... soportando el asco, los hará mejores policías? estaremos más seguros al tener un policía que es atrapado, pero soporta la tortura? Los criminales solo lo van a torturar de esa forma y no de otra?

Se les esta entrenando en prácticas que la policía mexicana domina perfectamente; y no creo que haya sido necesario traer a un extranjero para ese tipo de entrenamiento...simplemente se lo hubieran dado a otro policia de cualquier otra corporación, o ex-judicial, y seguramente lo hubieran hecho más efectivo y sin cobrar tanto.

Una de las cosas en las que quiero hacer énfasis es, por qué no proporcionan un entrenamiento con un enfoque de policia no-perdedor; este es el momento en que se tienen que preparar diferente a como lo han hecho, o cambiar radicalmente el enfoque. Es decir entrenarlos en ser honestos, éticos, inteligentes y sobre todo efectivos.
Si a entrenamiento extremo queremos someterlo, o darles un entrenamiento 'estrategico' de alto nivel, porque no darle otro tipo de entrenamiento? por mencionar un ejemplo, el sistema Specnaz Systema, (entrenamiento ruso en resistencia y pelea cuerpo a cuerpo basado en la experiencia).

Actualmente a los policias se les está entrenando para que sea la persona de Negro (Ver foto de abajo), creo que debería de entrenársele para ser la persona de Verde -Camuflajeada-.


El actual triste y penoso entrenamiento de policias (nótese que el de a lado izquierdo hasta aplaude -será ese el orgullo Mexicano de ver a otros tirado?):

El siguiente enlace pudiera ser no apto para algunas personas, contiene violencia.
Ejemplo del Sistema Specnaz:
http://www.youtube.com/watch?v=Uuq50cDfrTs

miércoles, julio 02, 2008

Ancho de Banda en Países del TLCAN (NAFTA)

Hace un par de post atrás comentaba acerca de los ancho de banda (download speed) de dos ciudades de la franja Fronteriza (Cd. Juarez/El Paso).
Ahora me dio la curiosidad de saber el ancho de banda entre los paises que conforman el TLCAN, que son México, Estados Unidos y Canadá; esto principalmente para tener una idea de que tan tecnológicamente somos competitivos.

Debido a que en cada pais tiene varias ciudades importantes, tomaré las ciudades capitales, para Estados Unidos, Washington DC; para Canada, Ottawa; para Mexico, el Distrito Federal.
Creo que seria una forma justa de medir a cada país, de acuerdo a su Capital.
Ahora pongámoslo de esta forma, de los tres paises que conforman el TLC, Estados Unidos es el que ocupa el primer lugar. Tiene casi 6 veces el ancho de banda que el que tiene México.
Canadá, ocupa el segundo lugar, tiene poco mas de 4 veces del ancho de banda que tiene México. Esto tomando como referencia las maximas velocidades. Si nos vamos a las velocidades mínimas. Estados Unidos con respecto a México es poco más de 7 veces. Respecto a Canadá 6 veces.

Fuente
http://www.speedtest.net

Para ver detalle y datos actualizados dar click sobre la imagen.