2008-02-28

Os melhores livros, discos e filmes ?

A Fnac faz 10 anos e publicou uma lista dos melhores livros, discos e filmes da última decada.

Gostos não se discutem mas acho que seleccionar nos 100 melhores filmes (e a única presença de desenhos animados) "os Simpsons" deixa de fora muitos outros filmes que ganharam óscares. E depois Borat?

Como em muitos casos penso que esta somente é uma forma da FNAC tentar vender alguns títulos.

RETURNING in DELETE statement

Today I found out that we can use the RETURNING clause also in a DELETE statement (not only in an INSERT or UPDATE statement).

DELETE <table or expression> <alias>
WHERE <where_clause>
RETURNING <exprs> INTO <data_items>;

As with the others DML statement types the RETURNING clause will to return the rows affected by the statement and can only be used with single tables, regular views based on a single table and materialized views.

It's a feature that I never needed but its very interesting.

2008-02-25

Free books links/ Links para Livros gratuitos

Livros gratuitos (por já serem de conteúdo livre)
Free books (due that the content is now free due to experation of copyright
Virtual books online
Virtual Book Store Livros de autores Brasileiros Brazilian Books
Many Books um monte de livros em mais de 50 línguas disponíveis em diversos formatos e livros audio
Several books in more that 50 languages and audiobooks
Project Gutenberg mais de 30000 livros disponíveis
More than 30000 books available
Free Speculative Fiction Online
Page by Page books

2008-02-21

BULK into confusing error messages

You are making a select statement into a BULK collection and you can get one of these error confusing messages

ORA-00947 not enough values
ORA-00913 too many values


What is the meaning of each one of these errors?

PLS-00320 in the definition of a record

Today I got this error when defining a record type:

PLS-00320: the declaration of the type of this expression is incomplete or malformed

TYPE trec_logins IS RECORD (
login gi_logins.login%TYPE,
id gi_logins.ID%TYPE,
estado gi_logins.status%TYPE,
gi_person gi_person.name%TYPE
);


What is the reason for this error?
In this case the reason was that you can't define as a record atribute name the same name as a table that is used in the definition of some atribute of the record (i.e. gi_person).

2008-02-20

Lei das demonstrações

The first law of demos: never try to actually use the system for anything; simply step through a well-rehearsed script that does not touch anything that might cause a crash


A 1ª lei das demonstrações: nunca tentes usar o sistema para alguma coisa; simplesmente percorrer passo a passo o teu script muito bem ensaido e testado e não toques em nada que possa originar um "crash".

Também pode ser visto como um corrolario da Lei de Murphy para as demonstrações.

Já agora mais uma: se pensas que tem bateria suficiente no teu portátil, pensa outra vez!

Erros no design de aplicações

Jakob Nielsen apresenta num novo artigo o seu top 10 de erros no design de aplicações.

Jakob concorda com o paradoxo do utilizador activo que apresentei num post anterior:

The most common way to get usability wrong is to listen to what users say rather than actually watching what they do

most users won't read a lot of upfront instructions


A reter deste artigo:
no one should be allowed to work on an application unless they've spent a day observing a few end users

Jakob's Law is "users spend most of their time on other websites," then Jakob's Second Law is even more critical: "Users have several thousand times more experience with standard GUI controls than with any individual new design."

If you can't meet the recommended response time limits, say so, and keep users informed about what's going on

Error messages are a special form of feedback: they tell users that something has gone wrong. We've known the guidelines for error messages for almost 30 years, and yet many applications still violate them.

Even if users deliberately seek out a new app, they often approach it without a conceptual model of how it works

Too many applications (...) offer(...) features that reflect the system's internal view of the data rather than users' understanding of the problem space.

It's almost always wrong to have a Reset button on a Web form.


Para além desse artigo aconselho também a leitura do Top Ten Mistakes in Web Design.

bom design para todos

2008-02-18

Indiana Jones

Depois de um fim-semana cansativo mas com alguns momentos divertidos começo a segunda-feira por ver o trailer do novo (e ultimo filme) do Indiana Jones!
Aqui fica ! e Boa Semana!

2008-02-12

Database Cluster information

Script to get the database cluster information:

SET SERVEROUTPUT ON

BEGIN
IF DBMS_UTILITY.is_cluster_database
THEN
DBMS_OUTPUT.put_line ('Clustered');
DBMS_OUTPUT.put_line ( 'Connect to instance:'
|| DBMS_UTILITY.current_instance
);

<<instances>>
DECLARE
ltab_instance_table DBMS_UTILITY.instance_table;
li_instance_count PLS_INTEGER;
BEGIN
DBMS_UTILITY.active_instances
(instance_table => ltab_instance_table
,instance_count => li_instance_count
);

FOR i IN 1 .. li_instance_count
LOOP
DBMS_OUTPUT.put_line ( ltab_instance_table (i).inst_number
|| ' = '
|| ltab_instance_table (i).inst_name
);
END LOOP;
END INSTANCES;
ELSE
DBMS_OUTPUT.put_line ('Not Clustered');
END IF;
END;


Output example:

Clustered
Connect to instance:1
1 = orainst1:ORA1
2 = orainst2:ORA2
3 = orainst3:ORA3

General Elevator 5 e 6

Episódio 5


Episódio 6


Actualização: foram actualizados os videos pois o local original já não funciona.

Vai uma pausa?

Três pequenos musicais humoristicos:

"A short musical about workers who become agitated when they discover their food missing from the office refrigerator."
Lunch Misérables

"(...) demonstrates the importance of protecting our children from dangerous online predators"
Web Site Story

Senator Craig's New Music Video

versão digital do Oracle Magazine March/April 2008

Encontra-se disponivel a versão digital do Oracle Magazine de March/April 2008

Links for Oracle

In sequence of a previous post with links to Steven Feuerstein related resources I leave here some of my list of Oracle links.

History of Oracle

Metalink Official support (extra cost)

Oracle Technology Network(OTN) articles, sample code, downloads, forums

AskTom forum by Thomas Kyte

Oracle Magazine

Oracle database official documentation

Oracle Server Technologies Curriculum online tutorials

Oracle Express Edition Free Version of the DB

Free Development Environments
APEX
SQL Developer
JDeveloper

2008-02-11

Count Rows in each table

Sometimes we what to know which is the table that has more rows.
That could be archived easily by the following query

select table_name, num_rows FROM user_tables ORDER BY num_rows desc nulls last

Cuidado com pagamentos MB na ZARA ou via UNICRE

Já é noticia de Novembro passado mas eu não sabia


Fica aqui o aviso!

PL/Vision: new version needed?

I have a new goal. To try to put PL/Vision at a new stage: an 10g and 11g version.

I try to install it in my 10.2 version and I got a compilation error.
For now here are the changes I made in the code

Compilation error:
comment line 50 and 51 of PLVEXEC package specification
-- no_such_table EXCEPTION;
-- PRAGMA EXCEPTION_INIT (no_such_table, -942);


Unnecessary code:
comment line 162 of PLVEXEC package body
-- ELSIF code_in = -942 THEN RAISE PLVexc.no_such_table;
comment line 350, 351 of PLVEXEC package body
-- logit BOOLEAN := FALSE;
-- showit BOOLEAN;

2008-02-07

O paradoxo do utilizador activo

Hoje nos meus 15 minutos que tento dedicar todos os dias a lera algo de novo descobri o seguinte artigo "Paradox of the Active User" (PDF) de Carroll, J.M. e Rosson, M.B. datado de 1987 e ai usei um pouco mais de tempo (não perdi tempo :-), antes investi tempo!).

O artigo baseia-se nas conclusões que os autores retiram da utilização de software (no caso em estudo um processador de texto) por diversos utilizadores aliada a varioes outros estudos.
Nesse artigo os autores apresentam o paradoxo dos utilizadores activo que realmente serão dois :-). Resumidamente, o paradoxo é apresentado como os utilizadores poupariam tempo se gastassem tempo a aprender mais sobre o sistema. Isto é poderiam poupar mais tempo, se fizessem aquilo que naturalmente evitam: ler a documentação!.

Os utilizadores nunca lêem o manual e a ajuda! Começam imediatamente a usar o software!
A sua motivação é logo fazer algo no sentido das suas tarefas. Não querem saber das opções de tutorial e seguir uma curva de conhecimento estabelecida.
Os desenhadores de software não devem assim ter uma ideia idealizada do utilizador racional, já que na realidade o utilizador é irracional. Deveremos basear o desenho na maneira que os utilizadores realmente agem, e observar mais o seu comportamento com o software do que eles dizem ou reportam.

"(...)what we see in the learning-to-use-a-computer situation is that people are so busy trying things out, thinking things through, and trying to relate what they already know (or believe they know) to what is going on that they often do not notice the small voice of structured instruction crying out to them from behind the manual and the system interface."

"Learners at every level of experience try to avoid reading."

Já experienciei isso muitas vezes, mesmo em sessões de apresentação e testes de sistemas.

Uma versão em HTML do artigo.

Mudam-se os tempos




2008-02-04

Surpresas do PACKAGE diutil

Hoje descobri este pacote, diutil, que tem entre os seus constituíntes estas pérolas:

diutil.bool_to_int( b BOOLEAN) RETURN NUMBER -- Booleano de 3 estados para inteiro (1=True, 0=False , null=null)
diutil.int_to_bool( n NUMBER) return BOOLEAN -- inverso to diutil.bool_to_int

Phil Collins

Na sexta-feira à noite estive a ver/ouvir com o meu filho (francisco) de 5 meses o DVD de Phil Collins "Finally - The First Final Farewell Tour".
Muito bom!

Ficam aqui alguns videos do DVD que encontrei no youtube.

"Against All Odds"


(e já agora o video clip original do filme...gosto devido a ter estado em alguns locais da filmagem)


"You'll Be In My Heart"


"One More Night"


True Colors ....brilhante!


"Come with me"


"Wear My Hat" um espéctaculo!


"Groovy Kind of Love"

2008-02-03

Fixing the sysdate for testing

When we create a test bunch (for instance with Quest Code Tester) we need to make sure that if we use the sysdate function in the code we will test that the sysdate function gets a certain value.

2008-02-01

Mark Knopfler: uma selecção

Gostos não se discutem, mas aqui fica uma selecção de mais alguns videos (para além dos que já a presentei) que encontrei no youtube deste virtuoso :-)









Fiquem bem

Pausa de sexta ao final da tarde

Activem o video e fechem os olhos e deixem-se planar, sonhar, relaxar, ....

Videos from QuestSoftware for Oracle

Several videos from QuestSoftware about Oracle are now available in youtube.
I show here a selection.

Good SQL practices

Youtube video (in 3 parts) derived from a presentation Stephane Faroult did to some IT managers several months ago about "Good SQL practices" (or should I say "the worst pratices"?)