28/9/10

Error 'Security.salt' en CakePHP

Concretamente nos sale este error:
Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE\cake\libs\debugger.php, line 684]

Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE\cake\libs\debugger.php, line 688]

Esto se soluciona si nos vamos al fichero app/config/core.php y cambiamos las cadenas que hay en estados lineas:
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

Configure::write('Security.cipherSeed', '76859309657453542496749683645');

Se ponen otras de nuestra cosecha y todo correcto. La explicación de esto es que CakePHP utiliza estas cadenas para encriptar y desencriptar, y estas son las que vienen por defecto de tal manera que tendríamos un agujero de seguridad. Por ello nos salta este error.

17/9/10

Tabla periódica de los elementos HTML5

Copio y pego de desarrolloweb.com:
A medida que nos vamos aproximando al momento en que el nuevo estándar HTML 5 se implemente de forma plena, van surgiendo nuevos recursos creados para desarrolladores y diseñadores web con los que mejorar nuestro conocimiento en esta tecnología.

En concreto este nuevo recurso llamado Periodic Table of the Elements, muestra una tabla interactiva con los 104 elementos que figuran en el borrador de HTML5 además de 2 elementos (track y device) propuestos para formar parte y que han sido marcados con un asterisco mientras se decide su aceptación.

Cuando seleccionamos cada uno de los elementos de la tabla aparece una breve descripción en inglés además de uno o más enlaces hasta la página del World Wide Web Consortium (W3C) y otros portales sobre desarrollo web como w3schools o HTML5 Doctor.

Interesados pueden acceder a la Tabla periódica de elementos HTML5 desde joshduck.com.

15/9/10

ORA-38301

Está intentando borrar un objeto que está en la papelera de reciclaje(La papelera de reciclaje de Oracle10g: Recycle Bin)
Si esto se deve a un script generado para borrarlo todo, no debe de incluir los objetos que estén en la papelera de reciclaje.

Páginas con iconos libres

Un pequeña lista de páginas con iconos libres:

  • Gran variedad y catálogo on-line -> Enlace

Create Table INSERT (CTAS)

Con esta sentencia se crea una nueva tabla que se rellena con los datos que se obtengan en la consulta. Un uso simple sería:
CREATE TABLE <table_name> AS
SELECT <column_name, column_name, ..., column_name>
FROM <table_name>;
Fuentes
http://psoug.org/reference/select.html
http://www.orafaq.com/wiki/CTAS
http://www.dba-oracle.com/t_create_table_select_ctas.htm

10/9/10

PRAGMA EXCEPTION_INIT

PRAGMA EXCEPTION_INIT asocia un nombre de excepción con un número de error de Oracle. Con ello se puede interceptar cualquier error ORA- y escribir un controlador específico para él, en lugar de utilizar el controlador OTHERS.

Ejemplo
DECLARE
  deadlock_detected EXCEPTION;
  PRAGMA EXCEPTION_INIT(deadlock_detected, -60);
BEGIN
  NULL; -- Alguna operación que cause un error ORA-00060
EXCEPTION
  WHEN deadlock_detected THEN
    NULL; -- Aquí se trataría el error específico
END;

6/9/10

Estimación de tiempos en un proyecto

1.- Divida el proyecto en tareas.

2.- Enumere las tareas

3.- Decida el tiempo que tardaría en realizar una tarea si supiese exactamente el tiempo que tardaría en efectuarla. Posteriormente utilizaremos este tiempo como unidad de medida.


4.- Decida el riesgo de cada tarea según esta escala:
  • a) He realizado esta tarea y se exactamente como hacerla. Ni siquiera voy a consultar la sintaxis en un libro. No se requiere ninguna investigación.

  • b) He hecho esto antes pero no recuerdo exactamente como encajan las cosas. Seguramente tenga que buscar información.

  • c) He visto que se ha hecho previamente, probablemente “Ricardo” o “Laura” sepan como hacerlo.

  • d) Parece que toda la información esta disponible para resolver el problema, es decir, existe una solución. Sin embargo todavía no se como encontrar el cómo hacerlo.

  • e) No se como hacerlo pero lo voy a intentar.

  • f) Creo que es imposible hacerlo, pero no lo puedo demostrar aun.

5.- Ahora asigne valores a las letras (observar que son potencias de 2):
  • A=1
  • B=2
  • C=4
  • D=8
  • E = 16
  • F = 32
6.- Multiplique su unidad de estimación por el tiempo de cada letra asociada a la tarea. Obtendrá los tiempos medios para sus tareas.

7.- Sume los tiempos totales y tendrá la estimación del tiempo del proyecto.

Por último es interesante comprobar como variaría su tiempo si una tarea de nivel C pasase a nivel B y otra de nivel D pasase a un E. Esto habrá que simularlo con mayor número de elementos cuantas más tareas entren en juego, de esta manera podrá acotar un tiempo máximo y mínimo para el proyecto.

Fuente
Java. Sin errores
Will David Mitchell
Editorial McGraw-Hill

2/9/10

La papelera de reciclaje de Oracle10g: Recycle Bin

A partir de Oracle10g se incorpora esta nueva funcionalidad, denominada FLASHBACK DROP, que se viene a unir a las demás características que conforman el capítulo de las funcionalidades FLASHBACK. La idea es la misma que tienen algunos sistemas operativos con su papelera de reciclaje, es decir, disponer de una ubicación donde colocar los objetos borrados con el fin de poder recuperarlos después. Por supuesto, todo esto se hace de forma transparente para el usuario.

TOOL_ERR

Este paquete proporciona todos los mensajes de error que actualmente se encuentran en la pila de errores de PL/SQL. En el ejemplo de abajo muestra cómo se puede construir el manejador de excepción para mostrar varios mensajes.
BEGIN

....

EXCEPTION
WHEN OTHERS THEN
LOOP
EXIT WHEN TOOL_ERR.NERRORS = 0;
MESSAGE (TO_CHAR(TOOL_ERR.CODE) || ': ' || TOOL_ERR.MESSAGE);
TOOL_ERR.POP;
END LOOP;
END;

ORA-06502

ORA-06502: PL/SQL: error numérico o de valor (PL/SQL: numeric or value error string).
La causa suele ser un cálculo numérico, cadena, conversión o limitación se ha producido un error. Por ejemplo, este error se produce si se hace un intento de asignar el valor NULL a una variable declarada NOT NULL, o si se hace un intento de asignar un número entero mayor que 99 a una variable declarada NÚMERO (2).

Forms developer: Consulta de usuario en tiempo real

Muchas veces es necesario obtener la consulta de un bloque de datos de Oracle Forms, o realizar un EXECUTE_QUERY. El problema reside en que si el usuario ha hecho una consulta, es decir, metido condiciones en de búsqueda, y ejecutamos un EXECUTE_QUERY se pierden esas condiciones.
Para recuperar la última consulta realizada se ejecuta lo siguiente:
GET_BLOCK_PROPERTY(vBloque, LAST_QUERY);
Esta función nos devuelve un VARCHAR2 que consistente en una cadena que contiene la última consulta realizada, incluyendo las secciones de WHERE, ORDER BY, etc.

Detectar dinámicamente los nombres de columna en PL/SQL

El paquete SYS.DBMS_SQL puede ser utilizado para obtener los nombres de columna de una consulta SQL. En el siguiente bloque PL/SQL se detectan los nombre de columna y se imprimen por pantalla.