Archivo Mayo, 2007
Usando UpdatePanel con Triggers
Por Pablo Viale - Ajax - 31 Mayo 2007
Si estás usando en Ajax un UpdatePanel, es sencillo hacer que éste se actualize si colocas un botón dentro de él mismo, algo como:
-
<asp:UpdatePanel id="UpdatePanel1" runat="server">
-
<contenttemplate>
-
<asp:Button id="Buscar" runat="server" Text="Buscar"></asp:Button>
-
<asp:Label runat="server" Text="Label"></asp:Label>
-
</contenttemplate>
-
</asp:UpdatePanel>
Sin embargo, ¿qué ocurre si el botón que debe desencadenar la actualización del UpdatePanel se encuentra fuera del mismo?
Entonces debes añadir un trigger al UpdatePanel para indicarle cuál o cuáles controles deben desencadenar su actualización. Hazlo así:
-
<asp:Button id="Buscar" runat="server" Text="Buscar"></asp:Button>
-
<asp:UpdatePanel id="UpdatePanel1" runat="server">
-
<contenttemplate>
-
<asp:Label runat="server" Text="Label"></asp:Label>
-
</contenttemplate>
-
<triggers>
-
<asp:AsyncPostBackTrigger ControlID="Buscar" EventName="Click"></asp:AsyncPostBackTrigger>
-
</triggers>
-
</asp:UpdatePanel>
SQL que encuentra coincidencias de un string sin usar LIKE en un .XSD de ASP.NET 2
Por Pablo Viale - ASP.NET 2.0 / 3.5, SQL (mySQL) - 31 Mayo 2007
Estoy usando .NET 2. Tengo mi archivo .XSD (Data Layer) y mi Business Logic.
El caso es que en el .XSD estoy poniendo esta consulta:
-
SELECT * FROM tabla WHERE nombre LIKE ?
Yo quería encontrar cualquier campo que contuviera el string solicitado, es decir, si alguien buscaba "pa", la sentencia debía regresar valores como "paco", "palabra", "pais", etc. Pero con el LIKE solamente regresaba el valor si la coincidencia era exacta.
Otros intentos que hice fueron:
-
SELECT * FROM tabla WHERE nombre LIKE '%?%'
-
SELECT * FROM tabla WHERE nombre LIKE %?%
-
SELECT * FROM tabla WHERE nombre LIKE \%?\%
Ninguno sirve porque al parecer al definir la sentencia SQL en el archivo .XSD, el signo de interrogación no puede tener ningún comodín.
Entonces busqué alguna función que pudiera ayudarme, y al final lo logré. La sentencia debe quedar así:
-
SELECT * FROM tabla WHERE (INSTR(nombre,?)> 0)
INSTR(str,substr) devuelve la posición de la primera ocurrencia de substring en la cadena de texto str.
Así que si devuelve un número mayor a cero, significa que lo encontró.
Ahora bien, siendo más estrictos, lo que yo quería era que encontrara el principio de la palabra. Es decir, si alguien buscaba por "yo" debería encontrar "yolanda", pero no "pelayo". Entonces necesitaba algo que le indicara que buscara solamente al principio del campo.
Así es como lo logré:
-
SELECT * FROM tabla WHERE nombre REGEXP CONCAT('^',?)
expr REGEXP pat realiza una búsqueda de expresiones regulares en la cadena expr usando el modelo pat.
CONCAT(cad1, cad2, ...) une cadenas de texto.
Es decir que al ejecutarse:
SELECT * from tabla where nombre REGEXP CONCAT('^','yo')
Se convierte en:
SELECT * from tabla where nombre REGEXP '^yo'
Como sabes, el símbolo ^ en expresiones regulares, significa el inicio de una palabra.
Para mayor información:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Archivo .bat para apagar un servidor Windows desde otra PC en la misma red
Por Pablo Viale - Windows - 30 Mayo 2007
Si usas un servidor local seguramente tienes la pura caja, sin monitor ni teclado. Cuando trabajas en el servidor lo haces usando Escritorio Remoto (Remote Desktop). Si es así, te gustará este tip para apagar tu servidor haciendo doble clic en un archivo .bat desde cualquier PC en tu red local.
Simplemente abre un bloc de notas y teclea lo siguiente:
shutdown /s /m \\servidor
Guarda el archivo como apagar.bat. Listo, ahora dale doble clic y tu servidor se apagará.
Nota: Debes estar autenticado en el servidor. Es decir, conéctate al servidor tecleando \\servidor en el explorador de windows y proporciona tu nombre de usuario y contraseña.
Si ejecutaste el archivo apagar.bat e inmediatamente después te das cuenta de que no lo querías apagar, debes ejecutar el siguiente comando para abortar el apagado:
shutdown /a /m \\servidor
Solamente funciona si lo haces en 30 segundos o menos después de haber enviado el primer comando.
Igual que antes, puedes teclear esto en un archivo y llamarlo abortar.bat para tenerlo a la mano en caso de que te arrepientas.
Crea una tercera sesión de Escritorio Remoto (Remote Desktop)
Por Pablo Viale - Windows - 30 Mayo 2007
Cuando intentas conectarte a tu servidor con Escritorio Remoto (Remote Desktop) obtienes el siguiente error:
Servicios de Terminal Server ha sobrepasado el número máximo de conexiones permitidas. El sistema no puede iniciar su sesión en (1B8E). Vuelva a intentarlo o consulte a su administrador del sistema.
En inglés:
The terminal server has exceeded the maximum number of allowed connections. The system cannot log you on (1B8E). Please try again or consult your system administrator.
La razón es que el servidor solamente acepta 2 sesiones remotas, ya sea activas o desconectadas. Es decir, abriste dos sesiones y las dejaste abiertas (simplemente cerraste las conexiones cerrando la ventana de Escritorio Remoto en vez de hacer clic en Inicio -> Cerrar sesión).
Afortunadamente puedes crear una tercera sesión ejecutando este comando desde una ventana de MS-DOS:
c:>mstsc /v:ip_del_servidor /console
Esto te permitirá conectarte a la sesión de consola de tu servidor, y una vez dentro te recomiendo matar las sesiones que se quedaron activas.
Por cierto, si piensas reiniciar tu servidor, la manera más confiable de hacerlo es desde la sesión de consola.
Como añadir un icono (favicon.ico) a tu página web
Por Pablo Viale - Herramientas, Web, WordPress - 30 Mayo 2007
Puedes añadir un icono a tu página web, como este:
Para hacerlo, primero necesitas poner esta línea entre los tags head de tus páginas web:
-
<link rel="shortcut icon" href="favicon.ico">
Después necesitas crear una imagen de 16X16 pixeles y exportarla con la extensión .ico. Lo puedes hacer con el programa Microangelo, pero lo tendrías que comprar, descargar e instalar, y no creo que sea algo que estés deseando.
Te doy una alternativa: Utiliza tu editor de imágenes favorito y haz una imagen de 16X16 pixeles y expórtala como gif. Para convertirla a ico simplemente entra a esta página:
http://www.html-kit.com/favicon/
En ella simplemente haz clic en el botón Examinar, escoge tu imagen y la página web te generará el archivo ico.
Después, si quieres revisar que todo está en orden, puedes validar tu página en esta dirección:
http://www.html-kit.com/favicon/validator/
Para WordPress
Si quieres añadir tu favicon a WordPress, inserta el código arriba mencionado en el archivo header.php del tema que estés utilizando. Ejemplo: c:\miblog\wp-content\themes\mitema\header.php
Como enviar mensajes de correo electrónico con System.Net.Mail
Por Pablo Viale - ASP.NET 2.0 / 3.5 - 28 Mayo 2007
Para enviar mails con ASP.NET 2 necesitas utilizar System.Net.Mail.
Antes que nada, no olvides importar la librería:
-
Imports System.Net.Mail
Para enviar el e-mail la sintaxis es la siguiente:
-
Dim mail As New MailMessage()
-
'Para enviar mensaje en HTML
-
mail.IsBodyHtml = True
-
-
'A quien se le envia
-
mail.To.Add("destinatario@ejemplo.com")
-
mail.To.Add("OtroDestinatario@ejemplo.com")
-
'Con copia para
-
mail.CC.Add("Copia@ejemplo.com")
-
'Con copia oculta
-
mail.Bcc.Add("CopiaOculta@ejemplo.com")
-
'De parte de quien
-
mail.From = New MailAddress("DeParteDeQuien@ejemplo.com", "Juan Pérez")
-
-
'Si necesitas agregar una direccion de respuesta distinta
-
mail.ReplyTo = New MailAddress("AQuienResponder@ejemplo.com", "Elisa Romero")
-
'Asunto
-
mail.Subject = "Hola amigos"
-
'Cuerpo
-
mail.Body = "<b>Hola, como están</b> todos?"
-
-
'Por si necesitas aniadir archivos adjuntos
-
mail.Attachments.Add(New Attachment("c:\archivo1.jpg"))
-
mail.Attachments.Add(New Attachment("c:\archivo2.jpg"))
-
-
Dim smtp As New SmtpClient("127.0.0.1") 'La direccion IP del servidor SMTP
-
'Si deseas autenticacion usa la siguiente linea
-
smtp.Credentials = New Net.NetworkCredential("login", "password")
-
'Listo, envia el mail
-
smtp.Send(mail)
La guía completa para optimizar Windows – Intermedios
Por Pablo Viale - Windows - 27 Mayo 2007
Guía para Avanzados
1. Apaga la opción de Restaurar el Sistema
La restauración del sistema puede ser muy útil si tu computadora tiene problemas, pero almacenar la información de todos los puntos de restauración puede tomar muchos Gigabytes de espacio en tu disco duro. Si deseas apagar la Restauración del Sistema ve a:
Panel de Control (vista clásica) -> Sistema -> Restaurar sistema y desmarca la opción que dice Desactivar Restaurar sistema en todas las unidades.
2. Desfragmenta tu Archivo de Paginación
Mantener tu Archivo de Paginación desfragmentado puede significar un fuerte impacto en el desempeño de tu computadora. Una de las mejores maneras de lograr esto es crear una partición separada en tu disco duro donde solamente viva el Archivo de Paginación. De esta manera este archivo no sería impactado por el uso regular del disco duro.
Otra manera de hacerlo es correr la utilidad PageDefrag. Esta aplicación puede ser usada para desfragmentar tu Archivo de Paginación, y puedes elegir la opción de hacerlo cada vez que tu computadora inicia.
Si no sirve la liga anterior, intenta descargarlo de download.com.
Para usarlo, primero descárgalo, luego córrelo, marca la opción Defragment at next boot, oprime Ok y reinicia.
Nota: La idea es que todos los archivos estén en un solo fragmento, es decir, que todas las columnas de la derecha digan 1.
3. Haz que tus menús carguen más rápidamente
Por default existe una pequeña demora desde el momento en que haces clic en algún submenu desplegable hasta el momento en el que se muestra. Es posible eliminar esta pequeña demora, lo que te permitirá trabajar más rápidamente.
No establezcas este valor en 0 ya que puede resultar incómodo porque los submenús desplegables se abriran en el mismo instante en que pases el mouse sobre ellos. Un buen valor es entre 50 y 150.
Para hacer este cambio ve a Inicio -> Ejecutar -> Teclea 'Regedit' -> Aceptar
Una vez en el Editor del Registro busca la siguiente clave (con icono de carpeta):
HKEY_CURRENT_USER\Control Panel\Desktop y hazle clic. En los valores que aparecen a la derecha, busca el llamado MenuShowDelay.
Dale doble clic y modifica el valor a 100.
Reinicia.
5. Asegúrate de que Windows XP está usando el modo DMA
XP habilita el DMA para discos duros y CD-Roms por default en la mayoría de los dispositivos ATA o ATAPI (IDE). De cualquier forma, en ocasiones las computadoras cambian al modo PIO, el cual es más lenta para transferir datos. Una típica razón es algún virus.
Para asegurarte de que tu computadora usa DMS ve a Inicio-> Botón derecho en Mi PC -> Hardware -> Administrador de dispositivos -> Expande la rama Controladores IDE ATA/ATAPI -> Botón derecho en Canal IDE Principal -> Propiedades -> Configuración avanzada.
Asegúrate de que para todos los dispositivos esté seleccionada la opción DMA si está disponible, y si no, selecciónala.
Traducido y adaptado del artículo The Complete Guide To Optimising Windows XP.
Crea tu propio validador (CustomValidator)
Por Pablo Viale - ASP.NET 2.0 / 3.5 - 25 Mayo 2007
Para implementar tu propia lógica en un validador utiliza un CustomValidator.
En la página aspx agrega la propiedad OnServerValidate al validador y dale como valor el nombre de una función que tú mismo escribirás.
-
<asp:customvalidator id="CustomValidator1" runat="server" CssClass="validador" Display="Dynamic" ErrorMessage="Debe seleccionar al menos un grupo" OnServerValidate="validaGrupos"></asp:customvalidator>
En el archivo aspx.vb (o en la porción de código de servidor de tu archivo aspx) implementa la función, como se muestra a continuación. Si tu lógica indica que el dato es aceptado, establece args.IsValid a true, y si no, a false.
-
Sub validaGrupos(ByVal sender As Object, ByVal args As ServerValidateEventArgs)
-
-
Dim vacio As Boolean
-
vacio = True
-
Dim elemento As ListItem
-
For Each elemento In Grupos.Items
-
If elemento.Selected = True Then
-
vacio = False
-
End If
-
Next
-
-
args.IsValid = Not vacio
-
-
End Sub
Una búsqueda tipo Firefox para Internet Explorer
Por Pablo Viale - Herramientas - 25 Mayo 2007
La herramienta de búsqueda de Firefox me gusta más que la de Internet Explorer porque viene integrada a la ventana del explorador mediante una barra que aparece en la parte inferior.
La de Internet Explorer (IE) aparece en una ventanita aparte, bastante molesta.
Sin embargo, existe un Add-on para IE que permite contar con una búsqueda al estilo de Firefox.
Se llama InlineSearch (fabricado por IEForge) y lo puedes descargar de aquí.
En este ejemplo, estamos buscando la palabra "ventana".
La guía completa para optimizar Windows – Principiantes
Por Pablo Viale - Windows - 24 Mayo 2007
1. Deshabilita los mensajes de confirmación
Puedes deshabilitar los mensajes de confirmación (¿Está seguro?) cuando borras algún archivo. Para hacerlo haz clic con el botón derecho en la Papelera de Reciclaje y selecciona Propiedades. Haz clic en la pestaña Global y quita la paloma a la opción Mostrar cuadro de diálogo para confirmar eliminación.
Si accidentalmente eliminas un archivo solamente ve a la Papelera de reciclaje y restáuralo.
2. Deshabilita el Servicio de Index Server
El Index Server es un programa que utiliza bastante memoria RAM. Procesa índices y mantiene actualizaciones de todos los archivos que hay en tu computadora con el fin de que cuando buscas algo, la búsqueda ocurra más rápidamente. Si no utilizas la búsqueda frecuentemente, y aún cuando lo hagas, este sistema es completamente innecesario. Para deshabilitarlo, ve a:
Inicio -> Panel de control -> Agregar o quitar programas -> Agregar o quitar componentes de Windows
Haz clic en Siguiente.
3. Optimiza los Efectos Visuales
Si bien los efectos visuales son agradables, quitan muchos recursos. Para deshabilitarlos ve a:
Inicio -> Panel de Control -> Sistema -> Opciones Avanzadas
Oprime el botón Configuración que está en la sección titulada Rendimiento.
En esa nueva ventana, en la pestaña Efectos visuales encontrarás varias opciones que puedes deshabilitar.
Yo me fui al extremo y dejé habilitada solamente la de Usar estilos visuales en ventanas y botones para no verme muy noventero.
4. Acelera la examinación de carpetas
Te habrás dado cuenta de que cada vez que abres Mi PC para examinar carpetas, existe una pequeña demora. Esto se debe a que Windows XP automáticamente busca por archivos e impresoras en la red local cada vez que abres el explorador de Windows. Para incrementar significativamente la rapidez cuando examinas carpetas, ve a:
Inicio -> Mi PC -> Herramientas -> Opciones de carpeta -> Ver
Quita la paloma a la opción Buscar automáticamente carpetas e impresoras de red.
Haz clic en Aplicar y reinicia tu computadora.
5. Deshabilita los contadores de desempeño
Windows XP tiene una utilidad que monitorea el desempeño en diferentes áreas de tu PC. Estas utilidades ocupan recursos, así que deshabilitarlas es una buena idea. Para hacerlo:
- Descarga e instala el Extensible Performance Counter List
- Abre la carpeta en donde lo instalaste y dale doble clic al archivo
exctrlst.exe - Selecciona cada uno de los contadores y desmarca la opción
Performance counter enabled. Lo tienes que hacer uno por uno - Cierra el programa, los cambios se guardan automáticamente
6. Mejora el uso de la memoria con Cacheman
Cacheman mejora el desempeño de tu computadora optimizando el caché de disco, la memoria y otras configuraciones. Descárgalo e instálalo.
Una vez instalado, ejecuta la opción Auto-optimize y reinicia tu computadora.
7. Optimiza tu conexión a Internet
Hay muchas maneras de hacer esto pero la más sencilla es correo TCP/IP Optimizer.
- Descárgalo y ejecútalo (no se instala)
- En la pestaña
General settingsselecciona tu velocidad de conexión a Internet en Kbps. Si no la sabes, chécalo con tu proveedor de servicios de Internet o haz una prueba de velocidad. - Asegúrate de que está seleccionada tu tarjeta de red bajo el título
Network Adapter selection - Marca la opcion
Optimal settings - Oprime
Apply changes - Oprime
Okcuando se te pregunte si estás seguro - Reinicia
8. Optimiza tu archivo de paginación
Si le das a tu archivo de paginación un tamaño fijo, le quitar la tarea al sistema operativo de tenerle que cambiar el tamaño.
Windows XP le da al archivo de paginación el tamaño de apróximadamente 1.5 veces la memoria física. Mientras esto es bueno en algunos sistemas con pequeñas cantidades de memoria (menos de 512MB) es improbable que un sistema típico necesite 1.5 X 512MB o más de memoria virtual.
Si tienes menos de 512MB de memoria, bríncate este punto. Si tienes 512MB o más, cambia la relación a 1:1.
Para hacerlo ve a:
Inicio -> Clic con el botón derecho a Mi PC -> Propiedades -> Opciones Avanzadas -> Rendimiento: Configuración -> Opciones avanzadas -> Memoria virtual: Cambiar.
Selecciona la unidad que contenga tu archivo de paginación (la que tenga valores numéricos) y copia el valor Tamaño máximo al valor Tamaño inicial.
Es decir, si tus valores son estos:
Tamaño inicial: 1536
Tamaño máximo: 3072
Cámbialos a estos:
Tamaño inicial: 3072
Tamaño máximo: 3072
9. Mejora los tiempos de arranque de tu computadora
El programa BootVis incremente significativamente los tiempos de arranque (boot).
Descárgalo e instálalo.
Ve a File -> New -> Next Boot + Drivers Trace y en la ventana de repeticiones que aparece simplemente oprime Ok. Lo que va a ocurrir es que tu sistema se va a reiniciar y BootVis va a analizar el proceso de arranque de tu computadora.
Cuando haya reiniciado, el programa correrá automáticamente. Cuando haya terminado el análisis, selecciona: Trace -> Optimize system.
El sistema se reiniciará nuevamente.
Cuando tu PC haya reiniciado, ten paciencia y espera a que el proceso termine. Verás esta ventana:
10. Borra algunas fuentes
Las fuentes, o tipos de letra, especialmente las del tipo True Type, usan muchos recursos. Elimina las fuentes que ya no utilices, dejando solamente las que uses a diario o que sean usadas por algunas de tus aplicaciones.
Para eliminar fuentes:
Ve a Inicio -> Panel de control -> Fuentes.
Arrastra las fuentes que no estás usando a alguna carpeta de respaldo, así las podrás volver a copiar al fólder Fuentes si las vuelves a necesitar. Mientras más fuentes quites, mejor.
Traducido y adaptado del artículo The Complete Guide To Optimising Windows XP.













