Iniciar Workspace personalizado para AutoCAD Map 3D

En anteriores versiones de AutoCAD Map 3D cargar el workspace personalizado o Map Classic era fácil, bastaba por asignarle el workspace deseado y con la nueva carga del software establecía workspace asignado.

Ahora cargar el Map Classic o un workspace personalizado hay que modificar ciertos parámetros. Hay varios métodos de realizarlo, como usar el Editor CUI de AutoCAD o también modificar la línea de comandos de inicio del software, en este tutorial mostraremos el Cambio de Línea de Comandos.

Primero que nada ya personalizado nuestro espacio de trabajo (o si usamos el workspace Map Classic predeterminado nos saltamos todos estos pasos y nos vamos al Paso 4), empezamos los siguientes pasos.

  1. PASO: Clic en Workspace Switching

    Workspace Switching

    Workspace Switching

  2. PASO: Clic en Save Current As…

    Save Current As...

    Save Current As…

  3. PASO: Name: Colocar el nombre de nuestro Workspace

    Save Workspace

    Save Workspace

Ya guardado el workspace configurarnos el inicio de la misma en Workspace Settings

  1. PASO: Clic en Workspace Settings

    Workspace Settings

    Workspace Settings

  2. PASO: Elegimos en My Workspace = al espacio de trabajo ya guardado anteriormente, como en el paso 3.

    My Workspace

    My Workspace

  3. PASO: Después de eso buscamos el acceso directo de AutoCAD Map 3D y le damos clic derecho y clic en Propiedades

    /w “MyWorkspace”

    /w “MyWorkspace”

  4. PASO: Ahora solo agregamos el argumento al destino la dirección del programa agregamos /w “MyWorkspace”
    /w "MyWorkspace"

    /w «MyWorkspace»

    Terminado estos pasos enhorabuena, ahora si iniciamos el AutoCAD MAP 3D carga nuestro workspace que establecimos, así de sencillo. Este es una forma hay varios formas de hacerlo.

    En este caso usamos /w “MyWorkspace” este parámetro es utilizado para iniciar con el workspace por defecto My Worskpace, con esto designamos el workspace y se carga en los archivos CUIx antes de la apertura de AutoCAD.

Publicado en AutoCAD | Etiquetado , , , | 1 comentario

Análisis Base Legal Desarrollo de Software Guatemala

En la república de Guatemala existen leyes que regulan la protección del desarrollo de programas, como lo encontramos en la Constitución Política de la República de Guatemala, la “Ley Derechos de Autor y Derechos Conexos” No. 33-98, en la “Ley de Propiedad Industrial” No. 57-2000, su reglamento Acuerdo Gubernativo No. 89-2002, y así como tratados internacionales, como el Acuerdo Sobre los Derechos de Propiedad Intelectual, Relacionados con el Comercio, al ser miembro de la Organización Mundial del Comercio como lo contempla en su Artículo 10 y asimismo en el Artículo 30 de La Ley de Derecho de Autor y Derechos Conexos.

En la Constitución Política de Guatemala establece en su Artículo 42. Derecho de Autor o inventor “Se reconoce el derecho de autor y el derecho de inventor; los titulares de los mismos gozaran de la propiedad exclusiva de su obra o invento, de conformidad con la ley y tratos internacionales”.

Básicamente “La Ley de Derechos de Autor y Derechos Conexos”, Decreto No. 33-98 y el Reglamento de “La Ley de Propiedad Industrial”, Acuerdo Gubernativo No. 89-2002, son las que constituyen el marco jurídico de la creación de software. También está regulado en el Acuerdo Sobre los Derechos de Propiedad Intelectual, Relacionados con el Comercio. Articulo 10 la cual establece “Los programas de ordenador, sean programas fuente o programas objeto, serán protegidos como obras literarias en virtud del convenio de Berna (1971)”. También como lo establece La Ley de Derecho de Autor y Derechos Conexos Articulo 30. “Los programas de ordenador se protegen en los mismos términos que las obras literarias.”

En el Reglamento “La Ley de Propiedad Industrial” Acuerdo Gubernativo No. 89-2002. En su Artículo 90 estable que El Registro de La Propiedad Intelectual es la dependencia administrativa responsable de la inscripción y registro de derechos en materia de Propiedad Intelectual seguidamente en el Artículo 91. La Organización de Registro está distribuida en departamentos y se establece el Departamento de Derecho de Autor y Derechos Conexos, el cual es de nuestro interés.

“La Ley de Derechos de Autor y Derechos Conexos” No. 33-98 Articulo 104 el registro tiene como fin garantizar la seguridad jurídica de los autores de obras que protege la misma ley.

La Ley de Derecho de Autor y Derechos Conexos Articulo 4, define el programa de ordenador como ”La obra constituida por un conjunto de instrucciones expresadas mediante palabras, códigos, planes o en cualquier otra forma, que al ser incorporadas a un soporte legible por máquina, es capaz de hacer que un ordenador ejecute determinada tarea u obtenga determinado resultado.” Y el Artículo 30. “Los programas de ordenador se protegen en los mismos términos que las obras literarias.”.

Publicado en Software Legal | Etiquetado , , | 1 comentario

ORA-02267

ORA-02267: tipo de columna incompatible con el tipo de columna referenciada.

El tipo de datos de la columna de referencia es incompatible con él, seleccione un tipo de datos compatible para la columna de referencia.

Ejemplo

Creamos la Relación llamado Empleado, con las siguientes columnas (estas no están normalizadas solo para ejemplificación.

create table empleado (id_emp integer, nombres varchar2(25),
apellidos varchar2(25));
create tabla empleado

create tabla empleado

id_emp: que es el identificador único y la volveremos primary key.
nombres: nombres de los empleados
apellidos: apellidos de los empleados.

Alteramos la relación de empleado para asignar el primay key.

alter table empleado
add constraint pk_empleado
primary key (id_emp);
alter tabla empleado

alter tabla empleado

Creamos la Relación de Puesto:

create table puesto (id_puesto integer, nombredelpuesto varchar2(25), sueldo integer,
id_emp char);
create tabla puesto

create tabla puesto

id_ puesto: que es el identificador único del puesto y la volveremos primary key.
nombrdelpuesto: el cargo o nombre del puesto.
sueldo: cantidad de honorarios al puesto que desempeña.
id_ emp: foreign key, esta es la que se enlazara con la Relación Empleado.

Alteramos la relación de puesto para asignar el primay key.

alter table puesto
add constraint pk_puesto
primary key (id_puesto);
alter tabla puesto

alter tabla puesto

Ahora provocaremos el ORA-02267 al asignar la llave foránea, y a que los tipos de datos son diferentes en ambas relaciones puesto, empleado:

alter table puesto
add constraint FK_emp_puesto
foreign key (id_emp)
references empleado(id_emp);
ORA-02267

ORA-02267

Explicacion:

El error se da cuando el primary que se enlace con otra relación no es el mismo tipo de dato, en este caso: id_emp en la relación puesto es de tipo char, mientras id_emp en la relación empleado es de tipo integer, de allí se genera este error.

Publicado en Oracle Data Base | Etiquetado | Deja un comentario

Errores con SQL Tuning Advisor

Primero que nada he tenido problemas de cómo llamar este artículo, ya que trata de la Ejecución del Asistente de Optimización SQL Tuning Advisor, aunque he visto que cada vez que se desea acceder a las recomendaciones de SQL Tuning Advisor, nos da varios errores en las cuales destacan: ora-13605, ora-13717, ora-06512.

Aunque quizás lo conveniente de llamar este artículo debería ser: como resolver los errores para usar SQL Tuning Advisor o llamarlo con los errores ora-13605, ora-13717, ora-06512.

Por tal razón tal, espero que este tutorial logre solventar estos problemas al usar SQL Tuning Advisor y que sea de gran utilidad.

Resumen del contenido:

Conectarse siempre con el usuario SYSTEM para:

  • Si se desea ejecutar SQL Tuning Advisor al usuario: SYSTEM realizar
alter system set CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC+TUNING';

Si se desea otorgarle privilegios a otro usuario por ejemplo: PRUEBA

alter system set CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC+TUNING';
grant advisor, administer sql tuning set, select any dictionary to prueba;

Conectarse luego con el usuario: PRUEBA y utilizar SQL Tuning Advisor.

Tutorial pasó a paso y explicación:

Primero que nada debemos de conectarnos en la base de datos con el usuario: SYSTEM (actualmente estoy usando SQLDEVELOPER y rDBMS: Oracle XE).

connect system

connect system

 

Si deseamos aplicamos SQL Tuning Advisor de una vez para el usuario: SYSTEM. Pero además es posible proporcionar privilegios y extracción de las estadísticas existentes para algún usuario en concreto, para ello me conectare con otro usuario llamado: PRUEBA.

connect user

connect user

Ahora utilizare las relaciones (tablas) que existen en el esquema HR del ejemplo de Oracle, he hecho una consulta y que será ejecutada con el usuario: PRUEBA (esta consulta hay que realizarle tuning).

select *
from dept d, emp e
order by e.deptno;
grant advisor to prueba;

Antes de ejecutar la consulta anterior es necesario dar privilegios SQL tuning advisor.

grant advisor to prueba;
grant advisor to user

grant advisor to user

También debemos de darle privilegios de administrador de SQL tuning.

grant administer sql tuning set to PRUEBA;
grant administer sql tuning set to user

grant administer sql tuning set to user

Asimismo otorgamos algunos privilegios acceso al diccionario:

grant select any dictionary to PRUEBA
grant select any dictionary to user

grant select any dictionary to user

Estos tres privilegios que le dimos al usuario: PRUEBA nos permitirá el uso de SQL Tuning Advisor. Nos conectamos con nuevamente con el usuario: PRUEBA, clic de nuevo en el Asesor de Ajustes SQL.

Ejecutemos la Consulta:

select *
from dept d, emp e
order by e.deptno;
producto cartesiano select from

producto cartesiano select from

Si todo funciona ¡en hora buena!, aunque si les muestra los siguientes errores ora-13605 y ora-6512 es porque existen problemas.

ORA-13605 ORA-06512

ORA-13605 ORA-06512

Los errores que lanzo al momento de usar SQL Tuning Advisor son:

ORA-13605: The specified task or object string does not exist for the current user.

Este error corresponde que la tarea que se está ejecutando, o cadena de objeto no existe para el usuario actual.

 

ORA-06512: at string, line string

La pila se desborda por excepciones no controladas, para ello es necesario utilizar un manejador de excepciones, contactarse con el DBA.

Explicación:

Estos dos errores, por ejemplo ora-13605 significan en este caso, se estaba creando un objeto y por alguna razón no fue posible la creación del objeto, mientras ora-06512 que cuando se ejecuto la tarea anterior se desbordo porque no existe un controlador de excepciones (en la imagen anterior muestra un listado ejemplo: at sys.DBMS_SYS_ERROR).

Si realizamos clic en aceptar, seguidamente quizás, nos saldrá otra ventana de dialogo.

ORA-13717 ORA-06512

ORA-13717 ORA-06512

Los errores que lanzo fueron:

Nuevamente ORA-06512: at string, line string

La pila se desborda por excepciones no controladas, para ello es necesario utilizar un manejador de excepciones, contactarse con el DBA.

Y ahora ORA-13717: Tuning Package License is needed for using this feature. Se necesita Tuning Package License para utilizar la característica.

Explicación:

ORA-06512, de nuevo se desbordo la pila porque no puedo realizar actividades de creación de objeto y ahora con la salvedad ORA-13717 la cual indica que no tenemos una licencia para realizar el tuning o no estamos autorizados para realizarlo puede ser que el DBA lo haya desactivado como media de seguridad.

Un poco de análisis:

Si bien es cierto alguien diría que tal vez aun nos faltan otorgamos más privilegios al usuario: PRUEBA. Sin embargo como ejercicio, si ejecutamos la misma consulta pero ahora para el usuario: SYSTEM.

select *
from dept d, emp e
order by e.deptno;

 

También nos mostrara los errores anteriores, la solución es que debemos de modificar el acceso al paquete de diagnóstico y ajustes (CONTROL_MANAGEMENT_PACK_ACCESS) y así autorizar el uso SQL Tuning Advisor para ello debemos de cambiar parámetros del sistema de gestor de base de datos para soluciona todos los errores que provocados.

Para revisar que parámetros tenemos configurada actualmente en CONTROL_MANAGEMENT_PACK_ACCESS.

Ejecutamos esta consulta con el usuario: SYSTEM.

SELECT name, value
FROM gv$parameter
WHERE name LIKE 'control_management_pack_access';
select from parameter

select from parameter

Vemos en que la consulta nos devuelve las tuplas (registros) en la columna VALUE como: ‘NONE’

En el CONTROL_MANAGEMENT_PACK_ACCESS puede establecer este parámetro en uno de los siguientes valores:

DIAGNOSTIC+TUNING: Paquete de diagnóstico y paquete de ajuste funcionalmente está habilitada en el servidor de base de datos.

DIAGNOSTIC: Sólo funcionalidad este Paquete de diagnóstico si está habilitado en el servidor.

NONE: Paquete diagnóstico y ajuste funcionalmente está desconectado en el servidor de base de datos.

Para cambiar estos parámetros basta con ejecutar esta sentencia en el usuario: SYSTEM.

alter system set CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC+TUNING';
alter system set CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTIC+TUNING

alter system set CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTIC+TUNING

La consulta ejecutada anteriormente implica que usaremos el diagnóstico y el tuning de este paquete. Y si volvemos a revisar los parámetros CONTROL_MANAGEMENT_PACK_ACCESS en la columna VALUE ya cambiado por ‘DIAGNOSTIC+TUNING’

SELECT name, value
FROM gv$parameter
WHERE name LIKE 'control_management_pack_access';
DIAGNOSTIC+TUNING select from parameter

DIAGNOSTIC+TUNING select from parameter

 

Nos conectamos con el usuario: PRUEBA y ahora ejecutamos la consulta.

connect user

connect user

select *
from dept d, emp e
order by e.deptno;
realizando un SQL tuning advisor

realizando un SQL tuning advisor

Y en hora buena, ya nos presenta el resultado de usar SQL Tuning Advisor, en este caso en particular la consulta genera un producto cartesiano.

Como podemos ver en la imagen existen Tipos de Implementación:

Estadísticas, Perfil SQL, Índices, Reestructura SQL.

Espero que les sirva.

Publicado en Oracle Data Base | Etiquetado , , , , , , | Deja un comentario

ORA-01722

ORA-01722: número no válido

El número especificado no es válido, escribir un número valido.
Los tipos de datos que provocan este error son: tipo number, tipo integer.

Ejemplo:
Creamos una relación llamada: Número de Teléfono.

create table numerotelefono (id_telefono integer,
numero number);

 

crear tabla ora-ORA-01722

crear tabla ora-ORA-01722

Provocaremos el error ORA-01722, la cual consiste en insertar un numero invalido.

insert into numerotelefono values (1,4979 472);

 

insert into ora-ORA-01722

insert into ora-ORA-01722

Vemos que el número de teléfono es inválido porque existe un espacio.

Ahora bien si le agregamos las los apostrofes (‘) ‘4979 472’, aun el error persiste porque el tipo de dato es number la cual solo puede aceptar números, sin espacios o letras.

insert into comillas ora-ORA-01722

insert into comillas ora-ORA-01722

Lo correcto es:

insert into numerotelefono values (1,4979472);
insert into exito ora-ORA-01722

insert into exito ora-ORA-01722

O

insert into numerotelefono values (1,'4979472');
insert into comillas exito ora-ORA-01722

insert into comillas exito ora-ORA-01722

 

También existen excepción de algunas letras y signos: como E de exponente o el signo –

Ejemplo:

insert into numerotelefono values (1,1.2e-5);
insert into e ora-ORA-01722

insert into e ora-ORA-01722

 

Publicado en Oracle Data Base | Etiquetado | Deja un comentario

Diferencia entre ALL_ DBA_ USER_ Oracle

Diferencia entre ALL_ DBA_ USER_ Oracle

Se pueden utilizar estos prefijos y consultar varias relaciones que contiene el diccionario de datos y en ellos existen información de objetos.

ALL_: corresponde a todos los objetos de la base de datos.
DBA_: corresponde todos los objetos propiedad del usuario y sobre el que el usuario se ha concedido privilegios.
USER_: corresponde a todos los objetos propiedad del usuario.

Algunos
all_source, dba_source, user_source
all_users, dba_users, user_users
all_sequences, dba_sequences, user_sequences.

Ejemplo:
Los tres prefijos sobre la relación de Objetos
Las relaciones: ALL_ OBJECTS, DBA_ OBJECTS, USER_ OBJECTS.

Estas son las relaciones (tablas) que corresponden y que tiene información sobre los objetos: table, view, function, procedure, index, triggers, etc.

ALL_OBJECTS: describe todos los objetos accesibles para el usuario actual.

DBA_OBJECTS: describe todos los objetos en la base de datos.

USER_OBJECTS: Escribes todos los objetos propiedad del usuario actual. Este punto de vista no muestra la columna owner (propietario).

 

select object_name,object_type
from user_objects
order by object_name desc;

 

all dba user oracle

all dba user oracle

 

select object_name,object_type
from all_objects
where owner='MUNDOCHOCCAC'
order by object_name desc;
all dba user oracle owner

all dba user oracle owner

 

Publicado en Oracle Data Base | Etiquetado | Deja un comentario

Error ORA- 00955

Error ORA- 00955: El nombre ya está siendo utilizado por un objeto existente.

La causa del error ORA- 00955, se da cuando se ejecuta una sentencia para crear algún objeto como: table, view, cluster, index, o synonyn que tenga el mismo nombre en la misma base de datos.

Para ello los objetos deben de tener distintos nombres en la misma base de datos.

Ejemplo:

Crear una secuencia con el nombre de: Telefono.

create sequence telefono
start with 1
increment by 1;

sequence ejemplo ora-00955

sequence ejemplo ora-00955

Se observa que la secuencia fue creada con éxito, ahora provocaremos el error ORA-00955.

Creando una relación (tabla) con el mismo nombre que el objeto anterior.

create table telefono (id_telefono integer,
                        numero varchar2(8));
crear tabla ejemplo ora-00955

create table ejemplo ora-00955

Para visualizar los objetos ya existentes podemos verlo en las relaciones (tablas) all_objects, dba_objects, user_objects.

 

Ejemplo:

select object_name,object_type
from user_objects
order by object_name desc;
 from object ejemplo ora-00955

from object ejemplo ora-00955

En la imagen vemos que existe un objeto llamado Telefono de tipo Sequence y al momento de crear otro objeto Telefono de tipo Table ya no nos permite pues tiene el mismo nombre aunque el objeto sea diferente.

Publicado en Oracle Data Base | Etiquetado | Deja un comentario

bash sh linux contar cuantos numeros positivos negativos y neutros

Este programa hecho en sh / bash lee 10 números y cuenta cuantos números positivos, negativos y neutros hay.

#!/bin/bash
X=1 #inicia la variable X
v=0 #inicia la variable v
v1=0 #inicia la variable v1
v2=0 #inicia la variable v2
while [ $X -le 10 ] #inicia X , -le operador aritmético y lee hasta 10 números
do
 echo "Ingresa un numero"
 read b # leer b
 if (($b<=-1)) #if si b es menor que -1
 then #entonces
 let v+=1 # let permite realizar la operación de sumar, cuando exista un numero menor o igual que -1 entonces v se le asigna +1 cuantas veces sea necesario
 fi
 if(($b>=+1))
 then
 let v1+=1 # let permite realizar la operación de sumar, cuando exista un numero menor o igual que +1 entonces v1 se le asigna +1 cuantas veces sea necesario
 fi
 if(($b==0))
 then
 let v2+=1
 let v1+=1 # let permite realizar la operación de sumar, cuando exista un numero 0  entonces v1 se le asigna +1 cuantas veces sea necesario
 fi
 let X=$X+1 # let suma X hasta llegar 10 para controlar el ciclo while
done
echo "Positivos hay $v negativos hay $v1 y neutros $v2" #Muestra el resultado
Publicado en Diversidad | Etiquetado | Deja un comentario

bash sh linux while calcular e imprimir tabla de multiplicar

Hasta ahora publicare acerca de de programas hechos en  sh /bash linux que permite la impresión de la tabla de multiplicar con el ciclo while


#!/bin/bash
X=1 #inicializar variable X
echo "Ingresa un número"
read M #leer la varible M
echo "Ingresa un constante"
read b #leer la varible B
while [ $X -le $b ] #X variable de inicio,  -le operador aritmético < o > y la variable b final
do
 R=$[X*M] #se multiplica X y M
 echo "$M * $X= $R" #mostrar resultado
 let X=$X+1 #let permite operar la suma incrementado X
 done

Publicado en Diversidad | Etiquetado , | Deja un comentario

Introducción a Cypher Base de Datos Grafos Neoj4

Bienvenidos a Cypher se describen la consultas fundamentales de Neo4j a través de cypher, si deseas conocer mas sobre la bases de datos orientada a grafos puedes leer lo siguientes artículos: Introducción a Neo4J base de datos orientada a grafos y Introducción a los conceptos base de datos grafos Neo4j

 

Ejecutar

:play cypher

Cypher

El lenguaje de consulta de grafos de Neo4J.

El lenguaje Cypher de Neo4J está construido especialmente para trabajar con los datos del grafo.

  • Los patrones de uso para describir los datos del grafo
  • El familiar SQL como consultas
  • La descripción declarativa, que encontrar, no como encontrarlo.

Create

Crear un nodo.

Utilizáremos Cypher para generar un grafo social simple.

CREATE (ee:Person { name: «Emil», from: «Sweden», klout: 99 })

  • Create: cláusula para crear nodos
  • (): el paréntesis indica un nodo
  • ee:Person: la ee es una variable y una etiqueta Person, para el nuevo nodo
  • {}: los paréntesis cuadrados para añadir propiedades al nodo.

Match

Encontrando nodos.

Ahora encuentre el nodo representado por email.

MATCH (ee:Person) WHERE ee.name = «Emil» RETURN ee;

Math Cypher

Math Cypher

  • Match: es la cláusula para especificar patrón de nodos y relaciones.
  • (ee.Person): un solo patrón del nodo con etiqueta “Person”, que realizara la equivalencia para ee variable.
  • Where: la cláusula para condiciones de los resultados
  • Ee.name = «Emil»: compara la propiedad de nombre y el valor de «Emil»
  • Return: la cláusula usada para retornar resultados particulares.

Create Más

Los nodos y las relaciones

Create: las clausuras pueden crear muchos nodos y relaciones de inmediato.

MATCH (ee:Person) WHERE ee.name = «Emil»

CREATE (js:Person { name: «Johan», from: «Sweden», learn: «surfing» }),

(ir:Person { name: «Ian», from: «England», title: «author» }),

(rvb:Person { name: «Rik», from: «Belgium», pet: «Orval» }),

(ally:Person { name: «Allison», from: «California», hobby: «surfing» }),

(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),

(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),

(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),

(rvb)-[:KNOWS]->(ally)

Comprobación de configuraciones:

Describe qué encontrar en el grafo.

Por ejemplo, un patrón puede usarse para encontrar a los amigos de Emil.

MATCH (ee:Person)-[:KNOWS]-(friends)

WHERE ee.name = «Emil» RETURN ee, friends

  • Match: cláusula para describir el patrón de nodos conocidos para encontrar los nodos.
  • (ee): Inicia el patrón con Person (capacitado por Where)
  • -[:KNOWS]-: corresponde a KNOWS relaciones (en cualquier dirección)
  • (friends): se saltó para los amigos de Emil.

Recomendaciones:

Usando patrones.

La comprobación de configuraciones puede usarse para hacer recomendaciones.

Johan está aprendiendo a surfear, así que él puede querer encontrarse a un nuevo amigo que hace:

MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)

WHERE js.name = «Johan» AND surfer.hobby = «surfing»

RETURN DISTINCT surfer

  • (): Paréntesis vacío para ignorar estos nodos.
  • DISTINCT: (distinto) porque más de lo que una ruta corresponde a un patrón.
  • Surfer: contendrá Allison, un amigo de un amigo que surfea.

 

Publicado en Diversidad | Etiquetado , , , , , | Deja un comentario