miércoles, agosto 10, 2016

Menús "DATOS" e "INSERTAR" deshabilitados en Excel

Hace algún tiempo hice un programa en freePascal que generaba un fichero Excel con dos Hojas de cálculo. El problema es que no podía ordenar datos (menú "DATOS") con los datos de las hojas.

viernes, julio 29, 2016

Sustituir texto en múltiples ficheros

Podemos sustituir de una vez el texto en múltiples ficheros de varias formas diferentes. Dependerá sobre todo de los comandos y utilidades disponibles en nuestro sistema operatativo. Además hay que tener en cuenta que un mismo comando tiene diferentes opciones en sistemas o versiones diferentes.

De este sitio (http://forums.devshed.com/unix-help-35/unix-replace-text-files-directory-146179.html) obtenemos algunas de las opciones:

Haciendo un script que utiliza el comando sed.

Mejora del script añadiendo la lectura de la extensión de los ficheros, el texto a sustituir y el texto a poner en su lugar:

Pasándole el comando sed a la salida del comando find


Utilizando perl como comando. En este ejemplo el texto "applicationX" es sustituido por "applicationY".

 
Esta de arriba es la que he podido utilizar en HP-UX V11.31 Me he posicionado en el directorio dónde tenía los ficheros a modificar y he ejecutado: "find . -type....."

Otra forma de utilizar perl. En este ejemplo el texto "design" es sustituido por "dezine".

En este otro sitio (http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/) tenemos unas interesantes variantes:

Con la opción -i de sed:


En muchos UNIX, no tenemos la opción -i, pero no hay problema si la sustitución es en un solo fichero:


viernes, abril 29, 2016

Linux ligero para antiguo portátil

Hola,
He solucionado dos pájaros de un tiro, y además de forma gratuita. Tenía en casa un viejo portátil con procesador Intel Celeron del año 2007 aproximadamente. El caso es que el pobre no podía con el Windows y además el XP está hace tiempo fuera de soporte sin actualizaciones.

Al final me he decantado por LUBUNTU, la versión de Ubuntu basado en el escritorio ligero LXDE, y la verdad es que no puedo estar más contento.

No ha habido ningún problema en la conexión a internet por wifi y por defecto viene muy completo.

Estos son los extras que he instalado:

Dropbox para almacenamiento de documentos en la nube y compartición de ficheros.
  1. Descargar paquete .deb del sitio web de dropbox.
  2. Instalarlo con sudo dpkg -i paquete
  3. Instalar cada una de las dependencias del paquete. Que recuerde yo sólo hay que instalar un paquete adicional.
Teamviewer para conexión remota a PC-s.
  1. Descargar paquete .deb del sitio web de teamviewer.
  2. Instalarlos con  sudo dpkg -i paquete
  3. Instalar las dependencias si las hubiera.

El comecocos para tiempos muertos.
sudo apt-get install pacman



Un programita para capturas de pantallas llamado shutter.
sudo apt-get install shutter

El resultado es sorprendente. Tenemos portátil para muchos años todavía.
Saludos,
Mikelats

viernes, febrero 12, 2016

Oracle, listar las versiones de componentes instalados

Podemos ejecutar la siguiente sentencia SQL para ver la versión de los componentes ORACLE instalados:


SQL> Select comp_name, version, status from dba_registry

Fuente:  http://www.oracle-wiki.net/startsqlinstalledcomponents

Pego la imagen por si las reglas de Blogger hacen que se modifique la sentencia original puesta.


martes, febrero 02, 2016

Oracle error ORA-02266

A veces tenemos problemas para hacer TRUNCATE en una tabla, o puede que incluso nos salga este error al intentar un simple DELETE, UPDATE, etc. sobre un solo registro.

El texto del error dice: "ORA-02266: unique/primary keys in table referenced by enabled foreign keys."

Es posible que nos extrañe el error porque previamente hemos podido deshabilitar las CONSTRAINTS de nuestro SCHEMA.

¿Pero qué ocurre con las CONSTRAINTS que otros desarrolladores han podido habilitar en otros esquemas Oracle?

Esta consulta nos indicará desde que otras tablas de otros esquemas hay definida alguna "integridad referencial" sobre nuestra tabla:


select
  src_cc.owner as esquema_origen,
  src_cc.table_name as tabla_origen,
  src_cc.column_name as columna_origen,
  dest_cc.owner as esquema_destino,
  dest_cc.table_name as tabla_destino,
  dest_cc.column_name as columna_destino,
  c.constraint_name as nombre_constraint
from
  all_constraints c
inner join all_cons_columns dest_cc on
  c.r_constraint_name = dest_cc.constraint_name
  and c.r_owner = dest_cc.owner
inner join all_cons_columns src_cc on
  c.constraint_name = src_cc.constraint_name
  and c.owner = src_cc.owner
where
  c.constraint_type = 'R'
  and dest_cc.owner = 'ESQUEMA'
  and dest_cc.table_name = 'TABLA';

Saludos,

Fuente: http://stackoverflow.com/questions/1143728/how-can-i-find-which-tables-reference-a-given-table-in-oracle-sql-developer





lunes, enero 25, 2016

Post-it en tu escritorio Linux


Llega un momento en el que tienes tu mesa de trabajo llena de notitas y papeles, y muchos te dirán que ese escritorio desordenado es la demostración de una cabeza desordenada (ni caso). En linux tenemos varias aplicaciones gratuitas para llevar esos post-its al escritorio del PC. Una de ellas es XPAD.

lunes, enero 11, 2016

HP-UX cambio rápido de IP

Puede que necesitemos cambiar la dirección IP de un servidor provisionalmente. Para hacer un cambio provisional que no va a aguantar un reinicio del servidor podemos utilizar ifconfig.

Formato del comando:
ifconfig interface nueva-ip netmask mascara-subred up

Ejemplos:

ifconfig lan0 192.168.50.10 netmask 255.255.255.0 up
ifconfig lan900 192.168.51.15 netmask 255.255.255.0 up

Cambios permanentes de IP: Hay varias formas de hacerlo:
  1. Entrar en sam y cambiar la ip en "network configuration".
  2. Editar el fichero /etc/rc.config.d/netconf
  3. Comando set_parms pasándole como parámetro la nueva IP.
Saludos,

sábado, enero 09, 2016

Servidor Windows en el que casi nada funciona

Ayer comentaba el problema que tenía con un servidor Windows en el que ante cualquier mínimo intento de cambiar o ver alguna configuración del sistema, se comporta de una de las siguiente formas:

  1. Me dice que no tengo permisos a pesar de estar con un usuario del grupo de Administradores.
  2. Símplemente no hace nada. No responde a las órdenes o intentos de guardar la configuración.
El caso 1 me ocurre por ejemplo al intentar editar la "DIRECTIVA DE SEGURIDAD LOCAL" con gpedit.msc. El error dice "Acceso denegado".El caso 2 me ocurre en múltiples situaciones como estas:
  • Al intentar guardar la configuración del proxy en Internet Explorer.
  • Al intentar cambiar a la vista clásica en el Panel de Control.
  • Al intentar ver la información de "Sistema" en el Panel de Control.
  • Etc. etc.
Voy a poner directamente la solución en mi caso, ya que para llegar a solucionar el asunto tuve que emplear varias horas con múltiples pruebas, cómo por ejemplo la que comentaba en el post anterior (restauración de la configuración de seguridad del servidor).

viernes, enero 08, 2016

Restauración de la configuración de seguridad en WindowsXP, WindowsServer2003

A lo largo de la vida útil de un servidor ha podido haber cambios en la configuración de seguridad de la misma. Llega un momento en el que encontramos múltiples avisos de "permiso denegado", "privilegios insuficientes" o similares, a pesar de estar utilizando un usuario del grupo de Administradores, y no sabemos qué está ocurriendo.

En un servidor antiguo como el Windows Server 2003 (también en el puesto de usuario WindowsXP), existe un comando, al que pasándole como parámetro el fichero que contiene la configuración de seguridad inicial, se restaura en el sistema ese estado "de fábrica", para poder probar si se ha solucionado el problema.
Se trata de utilizar el comando secedit tal y cómo indican desde Microsoft en este enlace.

Como otras veces, escribiré el comando en esta entrada por si desaparece el original.


secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose
 


En mi caso particular el problema de permisos no se solucionó porque se debía a otro problema. En la siguiente entrada escribiré lo que ocurría en mi servidor.

Saludos,
Mikelats

jueves, septiembre 03, 2015