CDONTS authentication

<%
Dim objMsg
Dim objConfig

Set objMsg    = CreateObject(«CDO.Message»)
Set objConfig = CreateObject(«CDO.Configuration»)

Dim objFields
Set objFields = objConfig.Fields

‘ Setup server information
objFields(«http://schemas.microsoft.com/cdo/configuration/smtpserver«)       = «mysmtpserver.com»
objFields(«http://schemas.microsoft.com/cdo/configuration/smtpserverport«)   = 25
objFields(«http://schemas.microsoft.com/cdo/configuration/sendusing«)        = 2

‘ Setup server login information if your server require it
objFields(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate«) = 1
objFields(«http://schemas.microsoft.com/cdo/configuration/sendusername«)     = «SMTPAUTHUser»
objFields(«http://schemas.microsoft.com/cdo/configuration/sendpassword«)     = «SMTPAUTHPassword»

objFields.Update

‘ Now you can setup message to send
Set objMsg.Configuration = objConfig
objMsg.To       = «tosomeone@somewhere.com»
objMsg.From     = «fromme@withlove.com»
objMsg.Subject  = «Hello»
objMsg.TextBody = «This is my test mail from CDOSYS»

objMsg.Send
%>

Pensando en ti

Cuando miro que en el cielo
brillan todas las estrellas
es que estoy pensando en ti

Cuando miro que las rosas
son más rojas y mas bellas
es que estoy pensando en ti

Cuando me hablan y no estoy
o no miro a donde voy
es que estoy pensando en ti

Y si veo que al despertar
todo me hace suspirar
es que estoy pensando en ti

Cuando observo que las cosas
amanecen más hermosas
es que estoy pensando en ti

Si las voces de las gentes
las escucho diferentes
es que estoy pensando en ti

Cuando todo me parece
cuando nada me disgusta
cuando el tiempo se me pasa sin sentir
es que estoy pensando en ti
es que estoy pensando sólo en ti

es que estoy pensando en ti
es que estoy pensando en ti

Cuando todo me parece
cuando nada me disgusta
cuando el tiempo se me pasa sin sentir
es que estoy pensando en ti
es que estoy pensando sólo en ti…

Proteger directorio en apache

Conociendo la ubicación local del directorio a proteger, para este ejemplo se usara el directorio donde tengo configurado phpMyAdmin para acceder a la Base de Datos Mysql a traves de la web. El directorio se encuentra en:
/home/httpd/html/myadmin

Se accede desde la web desde:
http://localhost/myadmin/index.php

Editamos el siguiente fichero (respetar el punto de .htaccess), y lo guardamos en /home/httpd/html/myadmin
El punto (.htaccess y .htpasswd) delante del nombre de un fichero, convierte al fichero en oculto al hacer un listado.

En el siguiente codigo, le indicamos de donde tiene que leer el fichero con los usuarios y contraseñas con las que tenemos acceso a este directorio

——-Fichero: .htaccess———-
AuthUserFile  /home/httpd/html/myadmin/.htpasswd
AuthGroupFile /dev/null
AuthName «PhpMyAdmin Server»
AuthType Basic
 
Options All
<Limit GET POST PUT>
require valid-user
</Limit>
——-Fin Fichero————-

Este fichero hace referencia a un fichero en /home/httpd/html/myadmin/.htpasswd

Este fichero contiene los usuarios y contraseñas con las que tenemos acceso a este directorio (respetar el punto de .htpasswd)

Para generar este fichero usaremos la utilidad htpasswd, que genera un fichero de claves.

Para usarlo basta hacer:

[root@p90 myadmin]# htpasswd -c /home/httpd/html/myadmin/.htpasswd pepe
New password: (ponemos pepe como contraseña)
Re-type new password: 
Adding password for user pepe

Esto es lo que saldra en el fichero .htpasswd –> pepe:ZsXDr0J0KGuEo
La opción -c lo que hace es sobreescribir cada vez que lo ejecutais

Si quereis añadir nuevos usuarios basta hacer lo mismo sin la ‘-c’:

[root@p90 myadmin]# htpasswd /home/httpd/html/myadmin/.htpasswd tomas

 ———Fichero: .htpasswd———— 
 pepe:ZsXDr0J0KGuEo
——-Fin Fichero————-

Para poder usarlo tendremos que indicar al Apache que vamos a tener un directorio protegido. Para eso simplemente basta con añadir estas linias:

 <Directory «/home/httpd/html/myadmin»>
    AllowOverride All
</Directory>

Una vez hecho todo esto, solo necesitamo reiniciar el servidor Apache de la siguiente forma:

 [root@p90 myadmin]# cd /etc/rc.d/init.d/
[root@p90 init.d]# ./httpd restart
Shutting down http: [  OK  ]
Starting httpd: [  OK  ]

Respaldar emoticonos de Messenger

El MSN 7 tiene la opción de crear emoticones a partir de gif’s o imágenes, o bien guardar alguna carita que nos mande un conocido. Para respaldar los emoticonos y fondos del messenger hay que dirigirnos a C:Documents and Settings%usuario%Datos de programaMicrosoftMSN Messenger%carpeta%, ahí se encontraran varias carpetas, la que nos interesa es CustomEmoticons.

Los archivos se encuentran con extensión .dat pero con solo modificarla se pueden visualizar sin problemas.

Utilizar la característica para rellenar nombres automáticamente (Autocompletar)

Corresponde a: Microsoft Office Outlook 2007

Autocompletar es una característica que muestra sugerencias para nombres y direcciones de correo electrónico cuando se empiezan a escribir. Estas sugerencias son posibles coincidencias con los elementos de una lista de nombres y direcciones de correo electrónico escritos con anterioridad, conocida como la lista de nombres Autocompletar.

¿Cómo funciona Autocompletar?

La característica Autocompletar, activada de manera predeterminada, muestra sugerencias para nombres mientras se escriben en las siguientes situaciones:

Cuadros Para, CC y CCO de un mensaje de correo electrónico.
Cuadros Para de las convocatorias de reuniones, tareas y solicitudes para compartir.
Campo Correo electrónico de una tarjeta de contacto.
Cuando se escribe la primera letra de un nombre en uno de estos cuadros, Autocompletar comienza a sugerir posibles coincidencias basándose en los nombres que se han escrito con anterioridad. Cuantas más letras se escriben, mayor es la posibilidad de que Autocompletar encuentre una coincidencia.

Haga clic en el nombre que desea escribir en el cuadro. Si está usando el teclado, seleccione el nombre mediante las teclas FLECHA ARRIBA o FLECHA ABAJO y, a continuación, presione la tecla ENTRAR (o TAB). Si no hay ninguna sugerencia que coincida con el nombre que busca, continúe escribiendo. La característica Autocompletar recordará el nombre escrito la próxima vez que lo escriba.

Con el tiempo, los nombres que se usan con menos frecuencia se desplazan hacia abajo en la lista hasta que finalmente desaparecen.

Eliminar un nombre de la lista Autocompletar

Seleccione la dirección de correo electrónico o el nombre no deseado con las teclas FLECHA ARRIBA o FLECHA ABAJO.
Presione SUPR.

Desactivar Autocompletar

En el menú Herramientas, haga clic en Opciones.
En la ficha Preferencias, haga clic en Opciones de correo electrónico y, a continuación, haga clic en Opciones avanzadas de correo electrónico.
Desactive la casilla Sugerir nombres al completar los campos Para, CC y CCO.
Copiar la lista Autocompletar en otro equipo
Puede copiar los nombre y direcciones de correo electrónico de la lista Autocompletar de un equipo a otro. Por ejemplo, si actualiza su equipo y no desea perder toda la información almacenada en la lista Autocompletar, puede copiar los nombre y las direcciones de correo electrónico de su equipo antiguo al nuevo.

Importante   Debe salir de Microsoft Office Outlook antes de empezar con el siguiente procedimiento. Los nombres se incluirán en la lista Autocompletar cuando reinicie Outlook.

En su equipo antiguo, elija una de las siguientes carpetas:
Microsoft Windows XP   Vaya a unidad:Documents and SettingsusuarioLocal SettingsApplication DataMicrosoftOutlook.
Windows Vista   Vaya a unidad:usuarioAppDataLocalMicrosoftOutlook.

Nota   Dependiendo de la configuración de archivos que posea, esta carpeta puede estar oculta.

¿Cómo se muestran las carpetas ocultas?

Windows Vista  
Haga clic en el botón Inicio y, a continuación, en Panel de control.
Haga clic en Apariencia y personalización.
 Nota   Si usa la vista clásica del Panel de control, haga doble clic en Opciones de carpeta y después vaya al paso 4.

Haga clic en Opciones de carpeta.
En Configuración avanzada, Archivos y carpetas, Archivos y carpetas ocultos de la ficha Ver, seleccione Mostrar todos los archivos y carpetas ocultos.

Windows XP  
Haga clic en el botón Inicio y, a continuación, en Panel de control.
Haga clic en Opciones de carpeta.
Haga clic en la ficha Ver y, a continuación, en la opción Mostrar todos los archivos y carpetas ocultos.

Haga clic con el botón secundario del mouse (ratón) en nombre de perfil.nk2 y, a continuación, en Copiar.

Sugerencia   Puede copiar el archivo en un medio extraíble, como un disquete o un CD y después copiar ese archivo en la ubicación correcta del equipo nuevo. O bien, puede adjuntar el archivo a un mensaje de correo electrónico y enviárselo a sí mismo. En el equipo nuevo, abra el archivo de datos adjuntos en Outlook y guárdelo en la ubicación correcta.

En el equipo en el que desea rellenar la lista Autocompletar, elija alguna de las siguientes opciones:
Microsoft Windows XP   Haga clic con el botón secundario en cualquier lugar de unidad:Documents and SettingsusuarioLocal SettingsApplication DataMicrosoftOutlook y, a continuación, haga clic en Pegar para guardar el nombre del perfil.nk2.
Windows Vista   Haga clic con el botón secundario en cualquier lugar de unidad:usuarioAppDataLocalMicrosoftOutlook y, a continuación, haga clic en Pegar para guardar el nombre del perfil.nk2.
Si el nombre de perfil de usuario de Outlook es distinto en el equipo en el que vaya a mover el archivo .nk2, debe cambiar el nombre de ese archivo para que sea el del nombre de perfil de usuario de Outlook que se está utilizando en el equipo nuevo una vez que haya copiado el archivo en la carpeta correcta. Por ejemplo, si mueve Cecilia Cornejo.nk2 del equipo antiguo con un nombre de perfil de usuario de Outlook como Cecilia Cornejo y copia el archivo Cecilia Cornejo.nk2 al equipo nuevo, debe cambiar el nombre del archivo con el nombre de perfil de usuario de Outlook que se está utilizando en el equipo nuevo.
Cuando se le pregunte si desea reemplazar el archivo existente, haga clic en Sí.
Abra Outlook para ver los cambios en la lista Autocompletar.

http://office.microsoft.com/es-es/outlook/HA100978873082.aspx#4

The show must go on

Empty spaces – what are we living for
Abandoned places – I guess we know the score
On and on, does anybody know what we are looking for…
Another hero, another mindless crime
Behind the curtain, in the pantomime
Hold the line, does anybody want to take it anymore
The show must go on,
The show must go on
Inside my heart is breaking
My make-up may be flaking
But my smile still stays on.
Whatever happens, Ill leave it all to chance
Another heartache, another failed romance
On and on, does anybody know what we are living for?
I guess Im learning, I must be warmer now
Ill soon be turning, round the corner now
Outside the dawn is breaking
But inside in the dark Im aching to be free
The show must go on
The show must go on
Inside my heart is breaking
My make-up may be flaking
But my smile still stays on
My soul is painted like the wings of butterflies
Fairytales of yesterday will grow but never die
I can fly – my friends
The show must go on
The show must go on
Ill face it with a grin
Im never giving in
On – with the show –
Ill top the bill, Ill overkill
I have to find the will to carry on
On with the –
On with the show –
The show must go on…

‘ALGO MUY GRAVE VA A SUCEDERLE A ESTE PUEBLO’

Por Gabriel García Márquez
 
Imagínese usted un pueblo muy pequeño donde hay una señora vieja que tiene dos hijos, uno de 19 y una hija de 14.  Está sirviéndoles el desayuno y  tiene una expresión de preocupación. Los hijos le preguntan qué le pasa y ella les responde: ‘No sé, pero he amanecido con el presentimiento de que algo muy grave va a sucederle a este pueblo’.

El hijo se va a jugar al billar, y en el momento en que va a tirar una carambola sencillísima, el otro jugador le dice: ‘Te apuesto un peso a que no la haces’. Todos se ríen. El se ríe. Tira la carambola y no la hace. Paga su peso y todos le preguntan qué pasó, si era una carambola sencilla, Y él contesta:  ‘es cierto, pero me he quedado  preocupado de una cosa que me dijo mi madre esta mañana sobre algo grave que va a suceder a este pueblo’.
 
Todos se ríen de él, y el que se ha ganado su peso regresa a su casa, donde está con su mama, feliz con su peso y le dice : Le gané este peso a Dámaso en la forma más sencilla porque es un tonto. ¿Y por qué es un tonto?, Porque no pudo hacer una carambola sencillísima segun el preocupado con la idea de que su mamá amaneció hoy con la idea de que algo muy grave va a suceder en este pueblo.
 
Y su madre le dice: No te burles de los presentimientos de los viejos porque a veces salen.
 
Una pariente que estaba oyendo esto y va a comprar carne. Ella le dice al carnicero: ‘Deme un kilo de carne’, y en el momento que la está cortando, le dice: Mejor córteme dos, porque andan diciendo que algo grave va a pasar y lo mejor es estar preparado’.
 
El carnicero despacha su carne y cuando llega otra señora a comprar un kilo de carne, le dice: ‘mejor lleve dos porque hasta aquí llega la gente diciendo que algo muy grave va a pasar, y se están preparando y comprando cosas’. Entonces la vieja responde: ‘Tengo varios hijos, mejor deme cuatro kilos…’

Se lleva los cuatro kilos, y para no hacer largo el cuento, diré que el carnicero en media hora agota la carne, mata a otra vaca, se vende toda y se va esparciendo el rumor.

Llega el momento en que todo el mundo en el pueblo, está esperando que pase algo. Se paralizan las actividades y de pronto a las dos de la tarde.
Alguien dice: ¿Se ha dado cuenta del calor que está haciendo?
¡Pero si en este pueblo siempre ha hecho calor!

Sin embargo -dice uno-, a esta hora nunca ha hecho tanto calor.
Pero a las dos de la tarde es cuando hace más calor.
Sí, pero no tanto calor como hoy.

Al pueblo todos alerta,y a la plaza desierta, baja de pronto un pajarito y se corre la voz: ‘Hay un pajarito en la plaza’. Y viene todo el mundo espantado a ver el pajarito.
Pero señores,dice uno siempre ha habido pajaritos que bajan aqui.
Sí, pero nunca a esta hora.

Llega un momento de tal tensión para los habitantes del pueblo, que todos están desesperados por irse y no tienen el valor de hacerlo.
Yo sí soy muy macho -grita uno-. Yo me voy.
Agarra sus muebles, sus hijos, sus animales, los mete en una carreta y atraviesa la calle central donde todo el pueblo lo ve.
 
Hasta que todos dicen: ‘Si este se atreve, pues nosotros también nos vamos’. Y empiezan a desmantelar literalmente el pueblo. Se llevan las cosas, los animales, todo.

Y uno de los últimos que abandona el pueblo, dice: ‘Que no venga la desgracia a caer sobre lo que queda de nuestra casa’, y entonces la incendia y otros incendian también sus casas.
 
Huyen en un tremendo y verdadero pánico, como en un éxodo de guerra, y en medio de ellos va la señora que tuvo el presagio, le dice a su hijo que está a su lado: ¿Vistes m’hijo, que algo muy grave iba a suceder en este pueblo?

 
Esto se llama Profesía Autocumplida.

Les suena familiar…?

“La verdadera crisis es la crisis de la incompetencia”

Como consecuencia de la crisis económica mundial ha habido reacciones de diferente índole tanto entre los empresarios y ejecutivos como entre el consumidor promedio, positivas o negativas.

Albert Einstein, científico alemán naturalizado estadounidense y autor de la teoría de la relatividad, tiene entre sus muchas aportaciones al mundo una serie de frases y citas celebres.

En estos tiempos de crisis varios personajes relevantes han reaccionado de manera positiva y han citado que en su inspiración esta precisamente una cita de Einstein. Es muy interesante y aquí la comparto:

“No pretendamos que las cosas cambien si siempre hacemos lo mismo. La crisis es la mejor bendición que puede sucederle a personas y países porque la crisis trae progresos.

La creatividad nace de la angustia como el día nace de la noche oscura. Es en la crisis que nace la inventiva, los descubrimientos y las grandes estrategias. Quien supera la crisis se supera a sí mismo sin quedar superado. Quien atribuye a la crisis sus fracasos y penurias, violenta su propio talento y respeta más a los problemas que a las soluciones.

La verdadera crisis es la crisis de la incompetencia. El inconveniente de las personas y los países es la pereza para encontrar las salidas y soluciones. Sin crisis no hay desafíos, sin desafíos la vida es una rutina, una lenta agonía. Sin crisis no hay méritos. Es en la crisis donde aflora lo mejor de cada uno, porque sin crisis todo viento es caricia.

Hablar de crisis es promoverla, y callar en la crisis es exaltar el conformismo. En vez de esto trabajemos duro. Acabemos de una vez con la única crisis amenazadora que es la tragedia de no querer luchar por superarla. Albert Einstein.”

ComboBox de búsqueda incremental

El control ComboBox que se incluye con Visual Basic tiene funcionalidad simplista, mientras que muchos controles de otros fabricantes ofrecen características adicionales adicionales. Una de estas características de terceros es la capacidad del control ComboBox para buscar texto y buscar entradas, comenzando por ese texto mientras se escribe texto en el control ComboBox.

Por ejemplo, si escribe las letras «he,» el control ComboBox buscará la primera entrada de texto comenzando por «he» y se mostrar el texto completo, como «Hello World».

A continuación se un ejemplo de código que demuestra cómo lograr esta funcionalidad con el control ComboBox que se incluye con Visual Basic.

Ejemplo del paso a paso

  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Colocar un control ComboBox en el formulario.
  3. Agregue el código siguiente a la ventana de código de Form1:
    Option Explicit
    
       Private Const WM_SETREDRAW = &HB
       Private Const KEY_A = 65
       Private Const KEY_Z = 90
       #If Win32 Then
    
       Private Declare Function SendMessage Lib "user32" Alias _
           "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
           ByVal wParam As Long, lParam As Long) As Long
    
       #Else
    
       Private Declare Function SendMessage Lib "User" ( _
           ByVal hwnd As Integer, ByVal wMsg As Integer, _
           ByVal wParam As Integer, lParam As Any) As Long
    
       #End If
       Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
         Dim sComboText As String
         Dim iLoop As Integer
         Dim sTempString As String
         Dim lReturn As Long
         If KeyCode >= KEY_A And KeyCode <= KEY_Z Then
           'only look at letters A-Z
           sTempString = Combo1.Text
           If Len(sTempString) = 1 Then sComboText = sTempString
           lReturn = SendMessage(Combo1.hWnd, WM_SETREDRAW, False, 0&)
           For iLoop = 0 To (Combo1.ListCount - 1)
             If UCase((sTempString & Mid$(Combo1.List(iLoop), _
               Len(sTempString) + 1))) = UCase(Combo1.List(iLoop)) Then
               Combo1.ListIndex = iLoop
               Combo1.Text = Combo1.List(iLoop)
               Combo1.SelStart = Len(sTempString)
               Combo1.SelLength = Len(Combo1.Text) - (Len(sTempString))
               sComboText = sComboText & Mid$(sTempString, Len(sComboText) + 1)
               Exit For
             Else
               If InStr(UCase(sTempString), UCase(sComboText)) Then
                 sComboText = sComboText & Mid$(sTempString, Len(sComboText) _
                 + 1)
                 Combo1.Text = sComboText
                 Combo1.SelStart = Len(Combo1.Text)
               Else
                 sComboText = sTempString
                 End If
             End If
           Next iLoop
           lReturn = SendMessage(Combo1.hWnd, _
           WM_SETREDRAW, True, 0&)
         End If
       End Sub
    
       Sub Form_load()
         Combo1.AddItem "Alpha"
         Combo1.AddItem "Beta"
         Combo1.AddItem "Charlie"
         Combo1.AddItem "Delta"
         Combo1.AddItem "Dingo"
       End Sub

     

  4. En el menú Ejecutar, haga clic en Inicio o presione la tecla F5 para ejecutar el programa.

Si se escribe la letra «D», observará que «delta» es el texto activo en el ComboBox. Si, a continuación, escribe una «I», se mostrará el texto «Dingo». Todas las siguientes letras que escriba, la siguiente palabra en la lista de control ComboBox comenzará con la secuencia de caracteres que ha escrito.

Nota : la propiedad de estilo del control ComboBox debe ser «0 – combinado de lista desplegable» para que esto funcione correctamente.