Por la costa al amanecer en invierno.
Author Archives: hvivani
Running Mar del Plata – Costa
Customizar Blogger !!
Eliminar u ocultar barra de blogger:
Para eliminar totalmente la barra de blogger hacemos lo siguiente:
1. Vamos al blogger y seleccionaremos la pestaña diseño.
2. Dentro de la pestaña Diseño seleccionaremos la opción “Edición de HTML”.
3. Posteriormente buscamos la etiqueta <head>.
4. Copiamos el siguiente código:
<style type=’text/css’>
#navbar-iframe{
height: 0px;
visibility: hidden;
display: none;
}
</style>
Para ocultar la barra de blogger, y que al pasar el ratón por la zona donde está se active y aparezca:
1. Seguimos los dos primeros puntos del proceso anterior.
2. Buscamos el fragmento de código body{.
3. Insertamos el siguiente fragmento de código justo encima:
#navbar-iframe {
opacity:0.0;
filter:alpha(Opacity=0)
}
#navbar-iframe:hover {
opacity:1.0;
filter:alpha(Opacity=100,FinishedOpacity=100)
}
Modificar favicon (Favorites Icon) de blogger:
1. Debemos crear un icono (.ico) con la imágen que queremos utilizar. El mismo debe ser de 16×16 pixels o 32×32 pixels.
hay servicios online para generar iconos como este chami.
2. Ese icono debe subirse a la web a alguna dirección donde pueda ser visible. Un opción puede ser fileden
3. Por último agregamos las siguientes líneas entre los parrafos <head> y </head> antes del tag <title>
<link href=’URL_icono’ rel=’shortcut icon’ type=’image/x-icon’/>
<link href=’URL_icono’ rel=’icon’ type=’image/x-icon’/>
Debería quedar algo así:
<?xml version=”1.0″ ……. >
<!DOCTYPE html ……. >
<html ……. >
<head>
<b:include data=’blog’ name=’all-head-content’/>
<link href=’URL_icono’ rel=’shortcut icon’ type=’image/x-icon’/>
<link href=’URL_icono’ rel=’icon’ type=’image/x-icon’/>
<title><data:blog.pageTitle/></title>
Aparentemente, debido a una limitación de Internet Explorer, ambas instrucciones son necesaria, una se usa para los favoritos y la otra para la barra de direcciones.
Una vez hecho esto, guardamos la plantilla y listo.
Configurar Firewall de Windows para permitir el acceso al SQL Server
Aplicable a: Windows XP, 2003 y Base de Datos Sql Server 2000/2005
En firewall de windows debemos abrir los siguientes puertos:
Puerto de la instancia del SQL Server: 1433 TCP
Puerto Sql Server Browser: 1434 UDP
Agregamos también el programa ejecutable del servicio como excepción:
C:\Archivos de programa\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe
En el SQL Server 2005, debemos además configurar el explorador de superficie donde , debemos setear lo siguiente:
Database Engine –> Service –> Automatic – Running
Remote Connections –> Local and Remote Connections – Using both TCP/IP and named pipes
SQL Server Browser –> Automatic – Running
Buscar y eliminar archivos por antiguedad
Esto siempre resulta útil para realizar taréas de mantenimiento del filesystem:
Buscar y eliminar archivos con mas de 3 días de antiguedad:
# find /home/ -mtime +3 -exec rm -rf {} \;
Si queremos que sean los que tienen menos de 3 días de antiguedad, reemplazamos el +3 por -3.
Si queremos que sean los que tienen exactamente 3 días de antiguedad, reemplazamos el +3 por 3.
Setting up de IT department from scratch – Obteniendo recursos financieros
El presente post, viene a raíz de que muchas veces me preguntan cuanto presupuesto manejo en el Departamento de Sistemas. Y cada vez que les comento que el presupuesto es prácticamente como para mantener insumos, no me pueden creer. Mas aún cuando se enteran de que armamos el departamento de sistemas desde cero… practicamente sin presupuesto.
Esta es la historia:
Resulta, que en el año 2003 me llamaron de la empresa donde trabajo actualmente para un desafío muy importante para mi carrera: Desarrollar el departamento de sistemas desde cero. No había practicamente nada en la empresa, solo un viejo IBM 36 que en la década del 80 había sido la vedette del lugar y un par de PCs sin conexión a la red.
Así que bueno… había que hacer de todo: diseñar las redes, implantar un ERP, armar la estructura de servidores y sus plataformas, etc, etc, etc. Interesante, no?
Cantidad estimada de puestos de trabajo: 50
Para hacerla mas interesante, se adicionaban las siguientes variables: el presupuesto era escaso: Se podría comprar el ERP y algunas PCs.
Demasiado escaso: Faltaban al menos los recursos financieros para comprar los servidores, licencias, armar las redes, etc, etc, etc.
Como haríamos eso?
La solución que aplicamos para obtener los recursos financieros necesarios para desarrollar la estructura que requeríamos fué armar proyectos tecnológicos para obtener crédito fiscal y subsidios otorgados por entidades gubernamentales.
El gobierno Argentino, otorga subsidios y crédito fiscal, en distintas modalidades a los proyectos que demuestren un cierto grado de innovación tecnológica.
Es así que presentamos varios proyectos, entre ellos el denominado “Punto de Venta POS bajo Linux”, siendo uno de los primeros sistemas privados de punto de venta con impresoras fiscales que se desarrolló por completo bajo linux y se implementó en Argentina.
Otro de los proyectos fué el de “Trazabilidad del Frío”, sistema que realiza un mapeo de los productos supercongelados desde la salida de fábrica hasta el puno de venta.
De esta manera, obtener recursos financieros, resulta posible si se encuentra la manera de armar algún proyecto lo suficientemente atractivo como para que sea aprobado y aprovechar asi sus beneficios.
Gracias Nestor por su carismático couching en el uso de estas estrategias.
Algunas de las entidades que gestionan estos proyectos en nuestro país son:
http://www.agencia.gov.ar/ (Nación)
http://www.cic.gba.gov.ar/ (Provincia de Bs. As.)
El departamento de Sistemas antes:
y después:
SCAN_ENABLE exception on MC1000 Barcode Scanner
Este bug está reportado para algunos equipos Motorola / Symbol MC1000 con Windows CE 4.2.
El problema es que luego de una determinada cantidad de lecturas el laser se deshabilita hasta que se haga un warm boot del equipo. El error informado es SCAN_ENABLE exception, perteneciente a las librerías precompiladas de Symbol.
La solución viene de la mano de un patch:MC100_SCANNER_FIX_4.2 que hay que descargar en la carpeta Platform del dispositivo y luego realizar un cold boot del terminal.
Acceso denegado en Windows XP
Si tenemos acceso denegado al acceder a ciertos archivos, especialmente luego de una reinstalación, seguimos los siguientes pasos:
1) Nos logueamos con una cuenta con permisos de administrador.
2) Vamos al Panel de Control –> Apariencia y Temas –> Opciones de Carpeta –> Ver y desmarcamos “Utilizar uso compartido simple de archivos (recomendado)”
3) Luego hacemos click con el boton derecho del mouse sobre la carpeta con problemas de permisos –> Propiedades –> Seguridad
Seguramente aparezca un mensaje advirtiendo de los problemas de seguridad de dicha carpeta.
4) Allí mismo vamos a Avanzadas –> Propietario –> Nombre y seleccionamos nuestro nombre de usuario. A continuación tildamos “Reemplazar propietario en subcontenedores y objetos”.
5) Aplicamos todo y aceptamos todo.
Listo
Migrar Servidores a Linux
La migración de sistemas de plataformas Windows a plataformas Linux surge de la necesidad lisa y llana de abaratar costos. Este es un resumen (muy resumido) de mis experiencias:
Escenario: Tenía una serie de servidores Windows, en su mayoría W2003R2, brindando los siguientes servicios:
– File Server, Mail Server, Proxy, Antivirus, Active Directory, Sql Server.
La cuestión es que de a poco y con paciencia es posible migrarlos a todos…, o casi todos a Linux.
– El Active Directory + el File Server se puede configurar directamente en un Linux con Samba + Ldap. El ldap (openldap) nos va a dar la funcionalidad de autenticación de usuarios mientras que el samba nos va a brindar los recursos compartidos necesarios para trabajar con archivos en la red.
– Con Squid reemplazamos cualquier proxy.
– Respecto del servidor de mail, he sido bastante masoquista al respecto (eso dicen ja, ja). Me he dedicado a instalar un servidor QMail con listas RBL que para instalarlo, me ha llevado unas cuántas horas de “plática” con él.
– Respecto de la base de datos, la mejor manera de reemplazar el SQL server es migrando los datos y el código a Mysql o Postgres.
El tema es el siguiente: los datos son fáciles de migrar. Inclusive hay herramientas que realizan dicha taréa. Pero en mi caso, tengo cientos de Stored Procedures… éstos si o sí requieren un análisis y traducción de código que no he visto que realice ninguna herramienta, con lo cuál, en mi caso, el costo de migración es sumamente alto.
Otro tema a evaluar en el caso de la base de datos es la aplicación que hace uso de dicha base. Es posible migrar su enlace a la base?
– Respecto del antivirus, no he encontrado un reemplazo realmente eficiente para el Symantec Corporate Server. Este antivirus, trabaja una base de virus centralizada y hace un deploy a todos los clientes windows conectados.
Creo que la mejor solución para este reemplazo va a surgir cuando pueda reemplazar todos los clientes windows por clientes Linux !!!
scripts: qmail usage statistics
Aquí varios scripts utilizados para analizar el uso del servidor de correo qmail. Se pueden utilizar independientemente o el primero llamará al resto:
[root@test scripts]# cat chkStatus.sh
#!/bin/bash
echo ""
echo ""
echo "Consultas de estado. Servidor Qmail"
echo "==================================="
echo ""
echo "TCP Server Hits:"
/root/scripts/chkTcpServerHits.sh $1|cut -c12-50
echo "RBL Hits:"
/root/scripts/chkRblHits.sh $1|cut -c12-50
echo "SPAM Hits:"
/root/scripts/chkSpamHits.sh $1|cut -c13-50
echo "Spam Deleted: "
/root/scripts/chkSpamHitsDeleted.sh $1|cut -c13-50
echo "Virus Hits:"
/root/scripts/chkVirusHits.sh $1|cut -c13-50
echo "Qtrap Hits:"
/root/scripts/chkQtrapHits.sh $1|cut -c12-50
echo "Failure:"
/root/scripts/chkFailure.sh $1|cut -c12-50
echo "Pop3 Hits:"
/root/scripts/chkPopHits.sh $1|cut -c12-50
echo "Send Local:"
/root/scripts/chkSendLocal.sh $1|cut -c12-50
echo "Send Remote:"
/root/scripts/chkSendRemote.sh $1|cut -c12-50
echo ""
echo "Estado de las colas: "
qmailctl queue
echo ""
echo "Uptime: "
uptime
echo ""
[root@test scripts]# cat chkTcpServerHits.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-smtpd/*|grep "tcpserver: pid"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkRblHits.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de rblsmtpd de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-smtpd/*|grep "rblsmtpd:"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkSpamHits.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de SPAM de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "smells like SPAM"|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit
[root@einstein scripts]# cat chkSpamHitsDeleted.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de SPAM eliminado de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "deleting message..."|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkVirusHits.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de virus de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "there be a virus"|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkQtrapHits.sh
#!/bin/bash
# 20070418-hvivani-Obtiene total dets del qtrap de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
fechaQtrap=`date +%m/%d/%y --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco en los logs para determinar la cantidad de lineas que lo contienen
cat /home/vpopmail/qtrap/logs/qtrap.log|grep "$fechaQtrap"|wc -l
# end
exit
[root@test scripts]# cat chkFailure.sh
#!/bin/bash
# 20070418-hvivani-Obtiene total de failure de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep "failure: "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkPopHits.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-pop3d/*|grep "tcpserver: pid"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkSendLocal.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de entregas locales de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep "to local "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit
[root@test scripts]# cat chkSendRemote.sh
#!/bin/bash
# 20070417-hvivani-Obtiene total de entregas remotas de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep "to remote "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit



