lunes, enero 31, 2011

Checkpoint

Lo más importante es que hagas un backup de la configuración del firewall. Si un día pierdes las reglas la has liado porque te va a llevar un montón de horas/días volverlas a crear.

Antes del backup ejecutaremos cpstop para parar los servicios de Checkpoint.
y después cpstart para arrancarlos.

Un sitio muy recomendable para los asuntos de Checkpoint es fir3net.com

Podemos ver por ejemplo la lista de comandos de Checkpoint, o la resolución de múltiples problemas.

En la resolución de problemas suele ser muy interesante la utilización de tcpdump y netstat. Aquí un ejemplo.

Saludos.

jueves, enero 27, 2011

Oracle SGA ¿está bien dimensionada?

La System Global Area (SGA) es la principal zona de memoria compartida utilizada en Oracle.

Es importante que esté bien dimensionada.

Después de la ejecución de un proceso pesado podemos utilizar el siguiente script para obtener un interesante informe que nos dará pistas de su uso:
@?/rdbms/admin/awrrpt.sql

AWR hace referencia a Automatic Workload Repository que es un termino nuevo que surge en la versión 10g.

En la ejecución nos hará las siguientes preguntas:

  1. ¿Queremos un informe HTML o texto plano?
  2. ¿Qué número de días de snapshots queremos elegir?
  3. Nos presentará un número de snapshots. Hay que elegir un snapshot de inicio y otro de final.
  4. Elegir el nombre del informe.
Por defecto habrá un snapshot por hora y se mantienen durante 7 días. Si hace falta más snapshots o mayores frecuencias podemos hacerlo así:

BEGIN
DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
retention => 43200, -- Minutes (= 30 Days). Current value retained if NULL.
interval => 30); -- Minutes. Current value retained if NULL.
END;
/

El script se ha recogido de aquí y también hay disponible más información sobre el AWR.

Saludos.

lunes, enero 24, 2011

Un par de buenos sitios

Estos días ha ocurrido una pequeña locura en el trabajo.

Nuestra web corporativa se veía bien, pero algunos usuarios no podían acceder.

¿Cómo saber si tu web está visible desde Internet?

En este sitio nos dicen si el problema de acceso lo tenemos sólo nosotros, o ellos tampoco pueden acceder:

http://www.downforeveryoneorjustme.com/

Si ellos no pueden acceder vete pensando que algo raro pasa.

He recordado las bromas que le gastaba Chema Alonso a Enrique Dans porque un día Enrique no podía acceder a Google y anunció que Google estaba caído.

Luego resultó que el problema era suyo y Google no tenía ningún problema. He ido al post de Chema y me he encontrado con que recomendaba la misma web que he puesto arriba, aunque por supuesto él tiene más gracia que yo para contarlo:

http://www.elladodelmal.com/2008/03/est-google-caido.html

Ahora bien, si hay un problema con los servidores DNS (como ha sido el caso en el caso de mi empresa), el comando adecuado es NSLOOKUP.

Para hacer nslookup desde "fuera" de la red podemos ir a un sitio remoto como este y ejecutarlo: http://www.spfld.com/nslookup.html


Ahora bien, nuestro problema era mucho más grave. La sospecha era que no eramos visible desde casi ninguna ubicación del mundo.

Para ejecutar nslookup desde múltiples localizaciones tenemos este otro sitio:

http://www.just-dnslookup.com/

Aquí una muestra del resultado:



Saludos.

domingo, enero 23, 2011

Instala un VIM más completo

Cuando instalas una distribución Linux, alguien ha hecho una selección de paquetes, me imagino que teniendo en cuenta que es conveniente que una instalación básica entre en un CD.

Concretamente con Ubuntu se instala el VIM-TINY que tiene las opciones básicas, pero no son suficientes al menos para desarrollar algo con PERL, C++, etc.:

1.-No tiene ayuda. Esto es lo que sale cuando haces :help
"The Vim online help is not installed on this Debian GNU/Linux system."

2.-No tiene "Syntax highlighting", o sea, que no te va a ayudar con colorines cuando hagas un script o programa.

Instalación de la versión completa:

sudo apt-get install vim

o para instalar la versión gráfica:

sudo apt-get install vim-gnome

Ahora ya tenemos una Ayuda decente:
:help



La versión se ve con el comando :version


Y lo más importante, cuando abrimos un programita C++ ya se ve decentemente:

ANTES:




DESPUÉS:


Saludos.

jueves, enero 20, 2011

Engañando a la Sociedad

A la izquierda una imagen de Wikipedia (entrada SATA).

Ayer un compañero del trabajo, que pensaba que yo sabía algo de esto, me dijo...

-Oye, quiero comprar un disco duro y en esta web hay discos maestros y discos esclavos. Y tienen diferente precio dependiendo del tipo.

-Ehh? No, no es así. Tu compras un disco y luego lo puedes usar de maestro o esclavo.

-No, mira en esta web. Hay discos maestros con un precio y luego otros esclavos más caros.

-A ver, a ver...

Y efectivamente en la web había discos SATA maestros y esclavos. No me lo podía creer por el sencillo hecho de que conocí la informática cuando los PC-s se vendían sin disco duro, y los primeros disco que conocí tenían la gran capacidad de ¡¡¡¡20 Mb!!!! Pues bien, incluso aquellos discos de los 80 disponían de jumpers para poder configurarlos de cualquiera de las dos formas: maestro o esclavo.

Como era imposible un retroceso tecnológico de ese tipo, enseguida busqué en Internet y encontré la explicación (me temo que soy de los últimos en enterarse de este nuevo TIMO DE LA ESTAMPITA).

Los discos maestros no pagan el canon de la SGAE y los discos esclavos sí. Físicamente son el mismo duro SATA.

Ni siquiera hay necesidad de los jumpers ya que a diferencia de la anteriores tecnologías (IDE, PATA), ahora el bus de datos es único para cada disco SATA que instales.

La explicación de este engendro jurídico es que se supone que cuando un usuario compra un disco maestro se va a utilizar como disco del sistema, y si compra un disco esclavo es para datos (y tal vez exista la posibilidad remota de que albergue una canción del Bisbal por lo que hay que pagar a los chupasangres de la SGAE.

A ver quien explica a sus señorías que ya no existen ni los discos maestros ni los esclavos, y que ésto sólo parece una treta para engañar al consumidor, que lo desconoce (creo que según las nuevas normas de ortografía impuestas por los sesudos y viejunos académicos ahora "sólo" se escribe "solo". Parece que estos también tienen cierto afán de protagonismo cambiando unas normas por otras sin ninguna justificación en este caso).

Saludos.

miércoles, enero 19, 2011

Consulta Access

Cuantas veces llegas al trabajo con un montón de cosas para hacer, abres el correo y encuentras la típica consulta fácil pero molesta.

Es fácil porque te va a llevar 4 minutos hacerlo, pero es molesta porque te interrumpe un montón de cosas.

Pues vamos al tema que igual le sirve a alguno (a mí mismo si dentro de unos años me preguntan lo mismo).

Hay una tabla con unos campos (campo1 y campo2). Hay que crear un campo calculado (campo3) que a través de uno o varios "IF THEN ELSE" tome un valor.

Esa estructura IF THEN ELSE se consigue a través de la función SiInm() disponible en Access:





Cuidado, la letra del medio de SiInm es una i (I) y no una ele (l).











Saludos.

lunes, enero 17, 2011

Backup en Linux/UNIX con TAR

TAR es un formato de fichero. También es el programa utilizado para crear ficheros TAR. Se creó en los inicios de UNIX y su nombre hace referencia a la escritura en cintas (Tape ARchiver).
Para backear /etc

tar cvf etc.tar /etc

¿Qué significan esas opciones?
c es para crear un nuevo archivo.
v para que podamos ver lo que va almacenando en el tar (opción verbose).
f para indicarle que el output del comando no es una cinta, sino un fichero.

Ahora podríamos comprimir el fichero etc.tar haciendo:
gz etc.tar
que genera el etc.tar.gz

Para obtener el fichero comprimido directamente usaremos la opción z.

tar czvf etc.tar.gz /etc

Si queremos backear TODO habrá que pensar en excluir el directorio donde vamos a dejar ese backup:

tar czvf /backup/fullBackup.tar.gz / --exclude /backup

Si queremos excluir una lista de ficheros entonces podemos crear un fichero de texto llamado por ejemplo excluidos.txt y se lo pasamos al programa:

tar czvf /backup/fullBackup.tar.gz / --exclude-from excluidos.txt


Para acceder al contenido de un fichero TAR:

Para descomprimir y obtener el fichero TAR:
gunzip fullBackup.tar.gz

Para ver el contenido del fichero TAR:
tar --list fullBackup.tar

Otra forma sería:
tar -tf fullBackup.tar

También se puede listar directamente desde el fichero comprimido:
tar -tzf fullBackup.tar.gz
La opción t es para listar (--list).
Con la opción z le indicamos que filtre por gzip.
f indica que se trata de un fichero y no una cinta.

Para desempaquetar los ficheros del .tar:
tar -xvf fullBackup.tar

Más opciones de tar aquí.

Saludos.

martes, enero 11, 2011

Ficheros ultraprotegidos en Windows


De vez en cuando tropezamos con ficheros que no hay forma de borrar.
Otras veces ocurre con un directorio. Le das a borrar y te dice que no está vacío.

Miras dentro del directorio y no hay nada.

Te das cuenta que puede haber un fichero oculto y vas a HERRAMIENTAS, OPCIONES DE CARPETA, VER... y activas MOSTRAR TODOS LOS ARCHIVOS Y CARPETAS OCULTOS.


Pruebas a eliminar otra vez... Y NADA, que no está vacío.


imagen extraida de wikipedia.
Entonces te acuerdas de que hay otra opción para OCULTAR ARCHIVOS PROTEGIDOS DEL SISTEMA OPERATIVO.


Quitas la marca y sigues sin poder eliminar la carpeta.


Ahora bien, vemos que hay un fichero de esos protegidos del sistema operativo.


Supongamos que es el SYSTEM VOLUME INFORMATION. ¿Cómo podemos eliminarlo, si no lo podemos eliminar ni con la cuenta de Administrador?


El problema es que el único que tiene acceso a ese fichero es el usuario SYSTEM. Como Administradores podemos ir a las propiedades, pestaña SEGURIDAD y darle al usuario ADMINISTRADOR permisos de CONTROL TOTAL.


Una vez hecho esto podemos eliminarlo sin problemas.


Aquí la solución de soporte Microsoft para el acceso al SYSTEM VOLUME INFORMATION.


Saludos.


lunes, enero 10, 2011

Perfil de usuario Windows corrupto

Este portátil mío estaba peor de lo que pensaba.

El último error encontrado al intentar iniciar sesión era: "Error en el servicio del perfil de usuario al iniciar sesión. No se puede cargar el perfil de usuario".
¡Después del error la sesión se cierra sin más!

La solución está perfectamente explicada en este blog: http://geeks.ms/blogs/ciin/archive/2009/04/16/windows-vista-error-en-el-servicio-servicio-de-perfil-de-usuario-al-iniciar-sesi-243-n-no-se-puede-cargar-el-perfil-de-usuario.aspx

La ventaja que tenía yo era que tenía otros usuarios Administradores con los que iniciar sesión. Así que ha sido fácil abrir el registro y arreglarlo.

1.-Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList:

En el panel derecho podemos ver a que usuario corresponde cada perfil:


Así es la parte izquierda ampliada:


En mi caso tenía dos entradas para el mismo perfil de usuario:

1.-S-1-521-172623586-....-1000
2.-S-1-521-172623586-...-1000.bak

Hacemos un backup de la entrada del registro (exportar fichero como .reg).
Eliminamos la entrada corrupta: S-1-521-172623586-....-1000
Renombramos el .bak con el nombre que tenía la entrada corrupta.

Así ya he podido iniciar sesión correctamente.

Saludos.

domingo, enero 09, 2011

Servicios no utilizados I

Tengo un portátil con Vista y 1 Gb de Ram que es para morirse de lo lento que es.


Para más INRI el vista viene con un montón de servicios activos que probablemente no utilicemos nunca.


1.-Advertencia de seguridad: Si no necesitamos acceder remotamente a nuestro equipo asegurarse de que en PANEL DE CONTROL, SISTEMA tenemos deshabilitado lo de "PERMITIR CONEXIONES DE ASISTENCIA REMOTA A ESTE EQUIPO". Por defecto está deshabilitado.



2.-Si no necesitamos acceder a otro servidor por escritorio remoto podemos deshabilitar "TERMINAL SERVICES" que por defecto en Vista se arranca en el inicio de Windows, lo uses o no.





En la lista de servicios podemos ver que en su arranque se ejecuta el proceso SVCHOST.





Así es la ejecución:

svchost.exe -k NetworkService








Paramos el servicio y le ponemos TIPO DE INICIO: DESHABILITADO.


Hay otro servicio que conviene deshabilitar si es que está arrancado. Es el WS-Management (Win RM)y sirve para la Administración remota de Windows. Por defecto este servicio viene como MANUAL.

Ejecuta también el proceso svchost:

svchost.exe -k NetworkService

Saludos.

sábado, enero 08, 2011

Midiendo el azar de nuestro sistema


No hay azar en nuestro ordenador. Es una ilusión que funciona, pero no verdadero azar.

Por eso es conveniente probar hasta que punto nos podemos fiar de las funciones RANDOM.

En el programa de la incluimos iostream para poder utilizar el
cout
.

stdlib para la función srand() y time para poder pasarle la hora actual a srand() como semilla.

Iniciamos una secuencia de números aleatorios con SRAND. Luego se invoca RAND las veces que haga falta.

El valor aleatorio máximo que se puede generar es la constante RAND_MAX.
Obtener un valor entre 0 y un entero N determinado:
valor = rand() % (limiteSuperior + 1)


Valor entre límite inferior y límite superior:

valor = rand() % (limiteSuperior - limiteInferior + 1) + limiteInferior


Valor entre 0 y 1:

Hacemos una conversión a float:

valor = (float) rand() / RAND_MAX


El programa de arriba toma valores entre 1 y 2. Cuando se llega a 10⁹ ocurrencias para y muestra los resultados:

Ya se ve que consigue resultados muy cercanos al teórico 50%.

Por cierto, para que muestre el error en formato "natural" en lugar de en notación científica he tenido que utilizar:

cout(setf(ios_base::fixed)

Para forzar notación científica diremos ios_base::scientific

Saludos.

martes, enero 04, 2011

paraboloide de revolucion en c++

Ya os decía el otro día que "elkarmaexiste" me planteó un problema en los comentarios de un post.

Se trata de hacer un programa que calcule el volumen que hay entre el plano z=0 y un paraboloide de revolución.

Para ver lo que es un paralelogramo de revolución y cómo se calcula el volúmen por medio de una integral doble definida podemos ir a este otro post que escribí el 12 de diciembre.

De todas formas pongo una imagen de la wikipedia:


El resultado de la integral definida para x e y entre 0 y 1 es exactamente 2/3.
O sea: 0,66666666666667

Pues este es el programa de C++ que, tal y como me pedían, calcula el volumen con distintas precisiones según el número de puntos que utilizados para el cálculo:

Lo que hago es calcular la función z=x*x + y*y para puntos cogidos al azar. Hago la suma de esos resultados y lo divido entre el número de puntos. Me imaginaba que daría como resultado el volumen, y así ha sido.

A medida que voy utilizando más puntos la precisión aumenta.



Y el resultado:



Saludos.