Pesquisar este blog
domingo, 6 de março de 2011
Melhorar gerenciamento de energia em notebooks com Linux
O seguinte link http://www.hardware.com.br/guias/debian-desktops/powertop-outras-dicas.html contém dicas interessantes de como ajustar o kernel para melhorar o gerenciamento de energia e economizar bateria do notebook.
quarta-feira, 2 de fevereiro de 2011
Como desconfigurar o Grid Cluster Configuration após falha na instalação
Este artigo no blog http://oraclehandson.wordpress.com/2010/03/03/how-to-forcefully-deconfig-grid-cluster-configuration-in-11gr2/ contém dicas de como desfazer a configuração do Oracle Grid Infraestructure para que se possa executar o script root.sh novamente.
segunda-feira, 24 de janeiro de 2011
Conheça os principais daemons Red-Hat
Neste artigo, é descrito os principais serviços que estão rodando em um servidor red-hat.
http://magazine.redhat.com/2007/03/09/understanding-your-red-hat-enterprise-linux-daemons/
http://magazine.redhat.com/2007/03/09/understanding-your-red-hat-enterprise-linux-daemons/
sábado, 11 de setembro de 2010
Função para validar CPF em PHP
/*Delphi-like function para converter string para inteiro*/function StrToInt($value){return (int)$value; } /* Função para validar CPF. Baseado na função validaCPF (Delphi) do PoliGestor da empresa Polidados Informática Ltda. */ function validaCPF($cpf){ $CPFInvalido = array ('00000000000', '11111111111', '22222222222', '33333333333', '44444444444', '55555555555', '66666666666', '77777777777', '88888888888', '99999999999'); $digitado = ""; $calculado = ""; $Result = false; try { // verifica CPF inválido for ($i = 0; $i < 9; $i++) if ($cpf == $CPFInvalido[$i]) return false; if ($cpf != ''){ $n1 = StrToInt($cpf[0]); $n2 = StrToInt($cpf[1]); $n3 = StrToInt($cpf[2]); $n4 = StrToInt($cpf[3]); $n5 = StrToInt($cpf[4]); $n6 = StrToInt($cpf[5]); $n7 = StrToInt($cpf[6]); $n8 = StrToInt($cpf[7]); $n9 = StrToInt($cpf[8]); $d1 = $n9*2+$n8*3+$n7*4+$n6*5+$n5*6+$n4*7+$n3*8+$n2*9+$n1*10; $d1 = 11-($d1 % 11); if ($d1>=10) $d1 = 0; $d2 = $d1*2+$n9*3+$n8*4+$n7*5+$n6*6+$n5*7+$n4*8+$n3*9+$n2*10+$n1*11; $d2 = 11-($d2 % 11); if ($d2>=10) $d2 = 0; $calculado = $d1 . $d2; $digitado = $cpf[9] . $cpf[10]; return ($calculado == $digitado) ? true : false; } } catch (Exception $e) { $Result = false; } } ?>
sábado, 4 de setembro de 2010
Principais Visões para ORACLE
Lista das principais visões do ORACLE utilizadas no desenvolvimento PL/SQL e na administração do banco de dados.
Fonte: http://www.techonthenet.com/oracle/sys_tables/index.php
ALL_ARGUMENTS Arguments in object accessible to the user
ALL_CATALOG All tables, views, synonyms, sequences accessible to the user
ALL_COL_COMMENTS Comments on columns of accessible tables and views
ALL_CONSTRAINTS Constraint definitions on accessible tables
ALL_CONS_COLUMNS Information about accessible columns in constraint definitions
ALL_DB_LINKS Database links accessible to the user
ALL_ERRORS Current errors on stored objects that user is allowed to create
ALL_INDEXES Descriptions of indexes on tables accessible to the user
ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
ALL_LOBS Description of LOBs contained in tables accessible to the user
ALL_OBJECTS Objects accessible to the user
ALL_OBJECT_TABLES Description of all object tables accessible to the user
ALL_SEQUENCES Description of SEQUENCEs accessible to the user
ALL_SNAPSHOTS Snapshots the user can access
ALL_SOURCE Current source on stored objects that user is allowed to create
ALL_SYNONYMS All synonyms accessible to the user
ALL_TABLES Description of relational tables accessible to the user
ALL_TAB_COLUMNS Columns of user's tables, views and clusters
ALL_TAB_COL_STATISTICS Columns of user's tables, views and clusters
ALL_TAB_COMMENTS Comments on tables and views accessible to the user
ALL_TRIGGERS Triggers accessible to the current user
ALL_TRIGGER_COLS Column usage in user's triggers or in triggers on user's tables
ALL_TYPES Description of types accessible to the user
ALL_UPDATABLE_COLUMNS Description of all updatable columns
ALL_USERS Information about all users of the database
ALL_VIEWS Description of views accessible to the user
DATABASE_COMPATIBLE_LEVEL Database compatible parameter set via init.ora
DBA_DB_LINKS All database links in the database
DBA_ERRORS Current errors on all stored objects in the database
DBA_OBJECTS All objects in the database
DBA_ROLES All Roles which exist in the database
DBA_ROLE_PRIVS Roles granted to users and roles
DBA_SOURCE Source of all stored objects in the database
DBA_TABLESPACES Description of all tablespaces
DBA_TAB_PRIVS All grants on objects in the database
DBA_TRIGGERS All triggers in the database
DBA_TS_QUOTAS Tablespace quotas for all users
DBA_USERS Information about all users of the database
DBA_VIEWS Description of all views in the database
DICTIONARY Description of data dictionary tables and views
DICT_COLUMNS Description of columns in data dictionary tables and views
GLOBAL_NAME global database name
NLS_DATABASE_PARAMETERS Permanent NLS parameters of the database
NLS_INSTANCE_PARAMETERS NLS parameters of the instance
NLS_SESSION_PARAMETERS NLS parameters of the user session
PRODUCT_COMPONENT_VERSION version and status information for component products
ROLE_TAB_PRIVS Table privileges granted to roles
SESSION_PRIVS Privileges which the user currently has set
SESSION_ROLES Roles which the user currently has enabled.
SYSTEM_PRIVILEGE_MAP Description table for privilege type codes. Maps privilege type numbers to type names
TABLE_PRIVILEGES Grants on objects for which the user is the grantor, grantee, owner, or an enabled role or PUBLIC is the grantee
TABLE_PRIVILEGE_MAP Description table for privilege (auditing option) type codes. Maps privilege (auditing option) type numbers to type names
Fonte: http://www.techonthenet.com/oracle/sys_tables/index.php
ALL_ARGUMENTS Arguments in object accessible to the user
ALL_CATALOG All tables, views, synonyms, sequences accessible to the user
ALL_COL_COMMENTS Comments on columns of accessible tables and views
ALL_CONSTRAINTS Constraint definitions on accessible tables
ALL_CONS_COLUMNS Information about accessible columns in constraint definitions
ALL_DB_LINKS Database links accessible to the user
ALL_ERRORS Current errors on stored objects that user is allowed to create
ALL_INDEXES Descriptions of indexes on tables accessible to the user
ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
ALL_LOBS Description of LOBs contained in tables accessible to the user
ALL_OBJECTS Objects accessible to the user
ALL_OBJECT_TABLES Description of all object tables accessible to the user
ALL_SEQUENCES Description of SEQUENCEs accessible to the user
ALL_SNAPSHOTS Snapshots the user can access
ALL_SOURCE Current source on stored objects that user is allowed to create
ALL_SYNONYMS All synonyms accessible to the user
ALL_TABLES Description of relational tables accessible to the user
ALL_TAB_COLUMNS Columns of user's tables, views and clusters
ALL_TAB_COL_STATISTICS Columns of user's tables, views and clusters
ALL_TAB_COMMENTS Comments on tables and views accessible to the user
ALL_TRIGGERS Triggers accessible to the current user
ALL_TRIGGER_COLS Column usage in user's triggers or in triggers on user's tables
ALL_TYPES Description of types accessible to the user
ALL_UPDATABLE_COLUMNS Description of all updatable columns
ALL_USERS Information about all users of the database
ALL_VIEWS Description of views accessible to the user
DATABASE_COMPATIBLE_LEVEL Database compatible parameter set via init.ora
DBA_DB_LINKS All database links in the database
DBA_ERRORS Current errors on all stored objects in the database
DBA_OBJECTS All objects in the database
DBA_ROLES All Roles which exist in the database
DBA_ROLE_PRIVS Roles granted to users and roles
DBA_SOURCE Source of all stored objects in the database
DBA_TABLESPACES Description of all tablespaces
DBA_TAB_PRIVS All grants on objects in the database
DBA_TRIGGERS All triggers in the database
DBA_TS_QUOTAS Tablespace quotas for all users
DBA_USERS Information about all users of the database
DBA_VIEWS Description of all views in the database
DICTIONARY Description of data dictionary tables and views
DICT_COLUMNS Description of columns in data dictionary tables and views
GLOBAL_NAME global database name
NLS_DATABASE_PARAMETERS Permanent NLS parameters of the database
NLS_INSTANCE_PARAMETERS NLS parameters of the instance
NLS_SESSION_PARAMETERS NLS parameters of the user session
PRODUCT_COMPONENT_VERSION version and status information for component products
ROLE_TAB_PRIVS Table privileges granted to roles
SESSION_PRIVS Privileges which the user currently has set
SESSION_ROLES Roles which the user currently has enabled.
SYSTEM_PRIVILEGE_MAP Description table for privilege type codes. Maps privilege type numbers to type names
TABLE_PRIVILEGES Grants on objects for which the user is the grantor, grantee, owner, or an enabled role or PUBLIC is the grantee
TABLE_PRIVILEGE_MAP Description table for privilege (auditing option) type codes. Maps privilege (auditing option) type numbers to type names
terça-feira, 31 de agosto de 2010
Exemplo de Midlet
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.util.Date;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
/**
* @author agilar
*/
public class CadastroCliente extends MIDlet {
private Display display;
private Form frmCadastro;
private TextField txtNome, txtEndereco, txtFone, txtEmail;
private DateField txtDtCadastro;
private ChoiceGroup sexo, casado;
private void createGUI(){
txtNome = new TextField("Nome", "", 70, TextField.ANY);
frmCadastro.append(txtNome);
txtEndereco = new TextField("Endereço", "", 70, TextField.ANY);
frmCadastro.append(txtEndereco);
txtFone = new TextField("Fone", "", 20, TextField.PHONENUMBER);
frmCadastro.append(txtFone);
txtEmail = new TextField("E-mail", "", 30, TextField.EMAILADDR);
frmCadastro.append(txtEmail);
txtDtCadastro = new DateField("Data Cadastro", DateField.DATE);
txtDtCadastro.setDate(new Date());
frmCadastro.append(txtDtCadastro);
sexo = new ChoiceGroup("Sexo", ChoiceGroup.EXCLUSIVE);
sexo.append("Masculino", null);
sexo.append("Feminino", null);
frmCadastro.append(sexo);
casado = new ChoiceGroup("Casado", ChoiceGroup.EXCLUSIVE, new String[] {"Sim", "Não"}, null);
frmCadastro.append(casado);
}
public void startApp() {
display = Display.getDisplay(this);
frmCadastro = new Form("Cadastro de Clientes");
createGUI();
display.setCurrent(frmCadastro);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
quinta-feira, 12 de agosto de 2010
Arvore binária simples com os três métodos de caminhamento
/*
* Árvore binária simples com os três métodos de caminhamento:
* Pré-Fixado
* Central
* Pós-Fixado
*
* Autor: Everton Agilar
* Data: 12/08/2010
*
*/
package aula.arvore;
public class Arvore {
int valor;
Arvore esq;
Arvore dir;
public Arvore(int valor){
this.valor = valor;
this.esq = null;
this.dir = null;
}
public void add(Arvore no){
if (no.valor < this.valor){
if (esq == null){
esq = no;
}else {
esq.add(no);
}
}
else {
if (no.valor > this.valor){
if (dir == null){
dir = no;
}
else {
dir.add(no);
}
}
}
}
public void caminhamentoPreFixado(){
System.out.printf("%d%n", valor); // a raiz é acessada por primeiro
if (esq != null)
esq.caminhamentoPreFixado();
if (dir != null)
dir.caminhamentoPreFixado();
}
public void caminhamentoCentral(){
if (esq != null)
esq.caminhamentoCentral();
System.out.printf("%d%n", valor); // a raiz é acessada no meio
if (dir != null)
dir.caminhamentoCentral();
}
public void caminhamentoPosFixado(){
if (esq != null)
esq.caminhamentoPosFixado();
if (dir != null)
dir.caminhamentoPosFixado();
System.out.printf("%d%n", valor); // a raiz é a última acessada
}
public static void main(String[] args) {
System.out.println("Demonstração de formas de caminhamento em árvore binária\n");
Arvore arv = new Arvore(10);
arv.add(new Arvore(8));
arv.add(new Arvore(12));
arv.add(new Arvore(4));
arv.add(new Arvore(14));
arv.add(new Arvore(2));
arv.add(new Arvore(1));
System.out.println("Caminhamento Pré-Fixado:");
arv.caminhamentoPreFixado();
System.out.println("\nCaminhamento In-Fixado ou Central:");
arv.caminhamentoCentral();
System.out.println("\nCaminhamento Pós-Fixado:");
arv.caminhamentoPosFixado();
}
}
quarta-feira, 11 de agosto de 2010
Regras Firewall Pessoal - iptables
#/bin/bash
# Regras de Firewall
# Autor: Everton Agilar
# Última alteração: 11/08/2010
# Limpa todas as tabelas
iptables -t filter -F INPUT
iptables -t filter -F OUTPUT
iptables -t filter -F FORWARD
# Define política padrão (DROP)
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
# Permite pacotes de loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
# Permite pacotes de entrada gerados dentro da rede
iptables -t filter -A INPUT -i wlan0 -p tcp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p udp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p icmp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 20:21 -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 1863 -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 443 -j ACCEPT
# Permite pacotes de saída para icmp,www,domain,ftp,msn,https
iptables -t filter -A OUTPUT -o wlan0 -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 1863 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 443 -j ACCEPT
# Regras de Firewall
# Autor: Everton Agilar
# Última alteração: 11/08/2010
# Limpa todas as tabelas
iptables -t filter -F INPUT
iptables -t filter -F OUTPUT
iptables -t filter -F FORWARD
# Define política padrão (DROP)
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
# Permite pacotes de loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
# Permite pacotes de entrada gerados dentro da rede
iptables -t filter -A INPUT -i wlan0 -p tcp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p udp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p icmp -m state --state related,established -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 20:21 -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 1863 -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -p tcp --sport 443 -j ACCEPT
# Permite pacotes de saída para icmp,www,domain,ftp,msn,https
iptables -t filter -A OUTPUT -o wlan0 -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 1863 -j ACCEPT
iptables -t filter -A OUTPUT -o wlan0 -p tcp --dport 443 -j ACCEPT
segunda-feira, 26 de julho de 2010
Exemplo de Applet e os eventos de ativação
package aula.applet;
import java.applet.*;
import java.awt.Graphics;
public class HelloWorldApplet extends Applet implements Runnable {
Thread anime = null;
public void init(){
System.out.println("Inicializando...");
}
public void start(){
System.out.println("Startando...");
if (anime == null){
System.out.println("Cria animador...");
anime = new Thread(this);
anime.start();
};
}
public void stop(){
System.out.println("Parando...");
anime.interrupt();
anime = null;
}
public void destroy(){
System.out.println("Morrendo...");
}
public void paint(Graphics g){
int x = new java.util.Random().nextInt(100);
int y = new java.util.Random().nextInt(100);
g.drawString("Ola Mundo", x, y);
System.out.println("pintando...");
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()){
try {
Thread.currentThread().sleep(2000);
} catch (InterruptedException e) {
}
if (isActive())
repaint();
else {
break;
}
}
System.out.println("Finalizando animador...");
return;
}
}
sexta-feira, 23 de julho de 2010
Comandos diversos
1 - Para listar somente diretórios
ls -l | grep "^d"
Sinopse: ^ significa primeira letra, que nesse caso é d
2 - Para listar somente arquivos executáveis
ls -l | grep "^-..x"
Sinopse: ^ significa lista primeira letra, nesse caso - significa arquivo comum, pula
dois caracteres de permissão (rw) e encontra o x se o arquivo estiver com permissão de
executável
3 - Como listar arquivos somente em uma linha
ls -1
Sinopse: -1 significa 1 linha
4 - Como listar arquivos pelo mais recente (o que foi modificado por último)
ls -1t
Sinopse: Use -1 para listar apenas uma coluna e -t para listar pela data de modificação
5 - Como alterar a data/hora
date 092713202006
clock -w
Sinopse: O comando date serve para alterar a data/hora.
Foi passado no formato mêsdiahoraminutoano.
Logo em seguinda foi usado o comando clock -w para gravar a data/hora na bios.
6 - Copiando usando tar
Use o comando tar.
$ (cd /origem && tar cf - . ) | (cd /destino && tar xvfp -)
Preste atenção nos parêntesis, eles fazem com que a operação seja executada em uma subshell,
não afetando a shell que vc está usando.
7 - Como saber o tamanho de um diretório em MB?
du -sm nome_do_diretório
8 - Como se tornar o root sem efetuas logou
su root ou su -
Sinopse: Digite o comando e após informe a senha
RPM
-------------------------------------------------
8 - Saber se um arquivo pertence a um pacote
rpm -qf nomearquivo
9 - Saber os arquivos de um pacote
rpm -ql koules-1.2-2.i386.rpm
10 - Obter informações sobre um pacote
rpm -qi coreutils
11 - Ver uma lista de todos os pacotes instalados
rpm -qa
12 - Como instalar, atualizar e remover pacotes
rpm -ivh nompacote.rpm
rpm -U nomepacote.rpm
rpm -e nomepacote
13 - Como testar se um pacote pode ser instalado corretamente
rpm -i --test nomepacote.rpm
14 - Reinstalar um pacote
rpm -U --replacedpkgs nomepacote.rpm
Redes
---------------------------------------------------
1 - Como saber as portas TCP abertas
netstat -an | grep LISTEN
diff e patch
-------------------------------------------------------------------
1 - Como comparar dois arquivos e gerar um arquivo das diferenças
diff -a arq1 arq2 > dif.txt
Sinopse: A opção -a foi usada para ser modo texto
G++
-------------------------------------------------------------------
1 - Compilar um programa usando uma bibliteca externa
g++ -o app1.exe -Wl,--add-stdcall-alias,L.,-msgdll app1.c
2 - Compilar sem usar a rtl cygwin1.dll
Incluir a opção -mno-cygwin no g++
--------------------------------------------------------------------
1 - Como redirecionar dispositivos no Windows
Ver comando MODE
Ex.: MODE LPT1:=COM1:
Este comando redireciona tudo que vai para LPT1 para COM1
ls -l | grep "^d"
Sinopse: ^ significa primeira letra, que nesse caso é d
2 - Para listar somente arquivos executáveis
ls -l | grep "^-..x"
Sinopse: ^ significa lista primeira letra, nesse caso - significa arquivo comum, pula
dois caracteres de permissão (rw) e encontra o x se o arquivo estiver com permissão de
executável
3 - Como listar arquivos somente em uma linha
ls -1
Sinopse: -1 significa 1 linha
4 - Como listar arquivos pelo mais recente (o que foi modificado por último)
ls -1t
Sinopse: Use -1 para listar apenas uma coluna e -t para listar pela data de modificação
5 - Como alterar a data/hora
date 092713202006
clock -w
Sinopse: O comando date serve para alterar a data/hora.
Foi passado no formato mêsdiahoraminutoano.
Logo em seguinda foi usado o comando clock -w para gravar a data/hora na bios.
6 - Copiando usando tar
Use o comando tar.
$ (cd /origem && tar cf - . ) | (cd /destino && tar xvfp -)
Preste atenção nos parêntesis, eles fazem com que a operação seja executada em uma subshell,
não afetando a shell que vc está usando.
7 - Como saber o tamanho de um diretório em MB?
du -sm nome_do_diretório
8 - Como se tornar o root sem efetuas logou
su root ou su -
Sinopse: Digite o comando e após informe a senha
RPM
-------------------------------------------------
8 - Saber se um arquivo pertence a um pacote
rpm -qf nomearquivo
9 - Saber os arquivos de um pacote
rpm -ql koules-1.2-2.i386.rpm
10 - Obter informações sobre um pacote
rpm -qi coreutils
11 - Ver uma lista de todos os pacotes instalados
rpm -qa
12 - Como instalar, atualizar e remover pacotes
rpm -ivh nompacote.rpm
rpm -U nomepacote.rpm
rpm -e nomepacote
13 - Como testar se um pacote pode ser instalado corretamente
rpm -i --test nomepacote.rpm
14 - Reinstalar um pacote
rpm -U --replacedpkgs nomepacote.rpm
Redes
---------------------------------------------------
1 - Como saber as portas TCP abertas
netstat -an | grep LISTEN
diff e patch
-------------------------------------------------------------------
1 - Como comparar dois arquivos e gerar um arquivo das diferenças
diff -a arq1 arq2 > dif.txt
Sinopse: A opção -a foi usada para ser modo texto
G++
-------------------------------------------------------------------
1 - Compilar um programa usando uma bibliteca externa
g++ -o app1.exe -Wl,--add-stdcall-alias,L.,-msgdll app1.c
2 - Compilar sem usar a rtl cygwin1.dll
Incluir a opção -mno-cygwin no g++
--------------------------------------------------------------------
1 - Como redirecionar dispositivos no Windows
Ver comando MODE
Ex.: MODE LPT1:=COM1:
Este comando redireciona tudo que vai para LPT1 para COM1
terça-feira, 6 de julho de 2010
Criando objetos com javascript
Exemplo de código em javascript para criar e instânciar objetos
// Classe Pessoa
// Classe Pessoa
function pessoa(nome, idade, endereco){ this.nome = nome; this.idade = idade; this.endereco = endereco; function gritar(){ if (this.idade >= 30) document.write("aaaaaaaaaaaaaaaa! "); else document.write("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa! "); } this.gritar = gritar; }
// Classe Calc function Calc(){ function add(x, y){ return x + y; } function subtract(x, y){ return x - y; } this.add = add; this.subtract = subtract; }
// instância a calculadora e faz cálculos matemáticos var c = new Calc(); document.write("2+2=" + c.add(2, 2) + " "); document.write("2-2=" + c.subtract(2, 2) + " ");
// instância pessoas e imprime seus nomes var joao = new pessoa("Joao", 30, "rua X"); document.write(" My name is " + joao.nome + " e tenho " + joao.idade + " anos "); joao.gritar(); // instância Maria e imprime seu nome var maria = new pessoa("Maria", 25, "rua Y"); document.write(" My name is " + maria.nome + " e tenho " + maria.idade + " anos "); maria.gritar(); sábado, 26 de junho de 2010
Base de fatos e regras família em Prolog
homem(everton).
homem(joao).
homem(marcos).
homem(jader).
homem(henrique).
homem(jonas).
homem(leo).
homem(rodrigo).
mulher(thaise).
mulher(mara).
mulher(carol).
mulher(melina).
marido(everton, thaise).
marido(joao, carol).
esposa(mara, jader).
filho(henrique, everton).
filho(jonas, marcos).
filho(leo, melina).
filho(rodrigo, mara).
casado_com(X, Y):- homem(X),
mulher(Y),
marido(X, Y), !.
casado_com(X, Y):- homem(X),
mulher(Y),
esposa(Y, X), !.
casado_com(X, Y):- mulher(X),
homem(Y),
esposa(X, Y), !.
casado_com(X, Y):- mulher(X),
homem(Y),
marido(Y, X), !.
tem_filho(X):- homem(X),
filho(Y, X), !.
tem_filho(X):- mulher(X),
filho(Y, X), !.
tem_filho(X):- casado_com(X, Y),
filho(K, Y), !.
homem(joao).
homem(marcos).
homem(jader).
homem(henrique).
homem(jonas).
homem(leo).
homem(rodrigo).
mulher(thaise).
mulher(mara).
mulher(carol).
mulher(melina).
marido(everton, thaise).
marido(joao, carol).
esposa(mara, jader).
filho(henrique, everton).
filho(jonas, marcos).
filho(leo, melina).
filho(rodrigo, mara).
casado_com(X, Y):- homem(X),
mulher(Y),
marido(X, Y), !.
casado_com(X, Y):- homem(X),
mulher(Y),
esposa(Y, X), !.
casado_com(X, Y):- mulher(X),
homem(Y),
esposa(X, Y), !.
casado_com(X, Y):- mulher(X),
homem(Y),
marido(Y, X), !.
tem_filho(X):- homem(X),
filho(Y, X), !.
tem_filho(X):- mulher(X),
filho(Y, X), !.
tem_filho(X):- casado_com(X, Y),
filho(K, Y), !.
sábado, 19 de junho de 2010
Questões sobre Gerenciamento de Projetos
1 - O QUE É UM PROJETO
É um esforço progressivo e temporário para criar um produto ou serviço único.
2 - O QUE É GERENCIAMENTO DE PROJETOS
É a aplicação de ferramentas, técnicas, conhecimentos e habilidades de gerência de projetos
a fim de atender a seus requisitos.
3 - QUAIS OS PROCESSOS DO GERENCIAMENTO DE PROJETOS
São cinco: iniciação, planejamento, execução, controle e encerramento
4 - QUAIS AS ÁREAS DE CONHECIMENTO DO GERENCIAMENTO DO PROJETO
São nove áreas:
* Gerenciamento de Integração - processos necessários para gerenciar e coordenar
os diversos grupos do gerenciamento de projetos;
Palavra chaves: Termo de abertura, plano de gerenciamento de projeto,
controle e monitoramento.
* Gerenciamento do Escopo - processos envolvidos na verificação de que o projeto
inclui todo o trabalho e somente o necessário para concluir com sucesso.
Palavras chaves: coletar requisitos, definir escopo, criar EAP, verificar e controlar escopo.
* Gerenciamento do Tempo - processos necessários para assegurar o termino
do projeto no tempo definido.
Palavras chaves: Definir e sequenciar atividades, estimar recursos e duração das atividades,
desenvolver e controlar cronograma.
* Gerenciamento de Custos - processos envolvidos no planejamento, estimativa, orçamentação
e controle de custos de modo que o projeto termine dentro do orçamento aprovado.
Palavras chaves: estimar custo, determinar orçamento, controlar custo.
* Gerenciamento da Qualidade - processos envolvidos na garantia de que o projeto
irá satisfazer os objetivos para os quais foi realizado.
Palavras chaves: Planejar qualidade, realizar garantia e controle da qualidade.
* Gerenciamento de Recursos Humanos - processos que organiza e gerencia a equipe do projeto.
Palavras chaves: desenvolver plano de RH, mobilizar equipe, desenvolver e gerenciar equipe.
* Gerenciamento das comunicações - processos relativos a geração e disseminação da informação
do projeto as pessoas interessadas.
Palavras chaves: Identificar interessados, planejar comunicação, reportar desempenho,
gerenciar expectativas.
* Gerenciamento de Riscos - processos para realizar o gerenciamento dos riscos do projeto.
Palavras chaves: planejar e identificar riscos, fazer análise
qualitativa e quantitativa dos riscos, monitorar e controlar riscos.
* Gerenciamento de Aquisições - processos para compra e aquisição de produtos, serviços,
resultados e contratos.
Palavras chaves: planejar e realizar aquisições, administrar e encerrar aquisições.
5 - QUAIS AS HABILIDADES DE UM GERENTE DE PROJETO
São cinco:
Habilidades organizacionais - organização e planejamento
Habilidades para finanças e contabilidade - estimar custos e desenvolver orçamentos
Habilidades de liderar - direcionamento e envolvimento da equipe
Habilidades de negociar e influênciar - dialogar e obter consenso
Habilidades de comunicação - comunicação clara e objetiva
6 - DEFINA O CONTEXTO DO GERENCIAMENTO
São cinco:
Portfólio - carteira de negócios (conj. de programas e/ou projetos)
Programas - são conj. de projetos administrados juntos. Ex.: Programa Educacional
Projeto - é um esforço progressivo e temporário para criar um produto ou serviço único.
Tarefa - elemento de trabalho com duração, custo e recurso definido.
Pacote de trabalho - menor unidade de trabalho possível de ser planejada, controlada e executada.
7 - O QUE É UM PMO
Escritório de projetos. Orienta e fornece suporte aos gerentes de projeto.
8 - PORQUE ESTUDAR GERENCIAMENTO DE PROJETOS
Porque falhas em projetos em suas definições de tempo, prazo e custo são elevadas
quando não se aplicam técnicas consistentes de gerenciamento de projetos. Estudos
mostram que o uso de gerenciamento de projetos aumenta as chances do projeto concluir no prazo e no orçamento estipulado.
9 - PARA GESTÃO DE UM PROJETO, QUAIS OS CICLOS DE VIDA QUE PRECISAMOS CONSIDERAR
São três:
Ciclo de vida do produto - permanência do produto no mercado
Palavras chaves: idealização, concepção, construção, uso e descarte.
Ciclo de vida do projeto - descreve o que deve ser feito para completar o projeto (definem inicio, meio e fim)
Palavras chaves: Termo de abertura, plano do projeto, declaração do escopo, progresso, aceitação, aprovação, entrega
Cicle de vida da GP - descreve o que deve ser feito para gerenciar o projeto (grupos de processos)
Palavras chaves: iniciação, planejamento, execução, controle, encerramento.
10 - CARACTERÍSTICAS DO CICLO DE VIDA DE UM PROJETO DE SOFTWARE
- fases geralmente sequenciadas
- custos e uso do pessoal baixos no início, aumentam durante a execução e cai rapidamente no final
- no início do projeto, nível de incerteza e riscos maiores e caem no final
- capacidade dos stakeholders em influênciar no projeto são maiores no início
- mudanças tem maior impacto a medida que a execução do projeto avança
11 - QUEM SÃO OS STAKEHOLDERS
São os interessados no projeto, ou seja, pessoas ou organizações que influênciam
ou são influênciados, positivamente ou negativamente, pelos resultados de um projeto.
12 - QUEM SÃO OS PRINCIPAIS STAKEHOLDERS
Gerente do projeto, cliente, usuário, membros da equipe, patrocinador, fornecedores, PMOs.
13 - QUAIS OS FATORES DE SUCESSO DE UM PROJETO
- seleção dos processos adequados
- uso de abordagem definida
- atendimento aos requisitos do cliente
- balançeamento de interesses entre os vários interessados
14 - FATORES QUE DETERMINAM A NECESSIDADE OU NÃO DE GERENCIAMENTO DE PROJETO
- Tamanho do empreendimento
- Importãncia do empreendimento
- Reputação da organização
- Compartilhamento de recursos
- Não familiaridade - empreendimento completamente novo
15 - TIPOS DE PROCESSOS
- Orientado ao Projeto - Iniciação, planejamento, execução, controle, monitoramento, encerramento.
- Orientado ao Produto - Especificação e criação do produto do projeto.
É um esforço progressivo e temporário para criar um produto ou serviço único.
2 - O QUE É GERENCIAMENTO DE PROJETOS
É a aplicação de ferramentas, técnicas, conhecimentos e habilidades de gerência de projetos
a fim de atender a seus requisitos.
3 - QUAIS OS PROCESSOS DO GERENCIAMENTO DE PROJETOS
São cinco: iniciação, planejamento, execução, controle e encerramento
4 - QUAIS AS ÁREAS DE CONHECIMENTO DO GERENCIAMENTO DO PROJETO
São nove áreas:
* Gerenciamento de Integração - processos necessários para gerenciar e coordenar
os diversos grupos do gerenciamento de projetos;
Palavra chaves: Termo de abertura, plano de gerenciamento de projeto,
controle e monitoramento.
* Gerenciamento do Escopo - processos envolvidos na verificação de que o projeto
inclui todo o trabalho e somente o necessário para concluir com sucesso.
Palavras chaves: coletar requisitos, definir escopo, criar EAP, verificar e controlar escopo.
* Gerenciamento do Tempo - processos necessários para assegurar o termino
do projeto no tempo definido.
Palavras chaves: Definir e sequenciar atividades, estimar recursos e duração das atividades,
desenvolver e controlar cronograma.
* Gerenciamento de Custos - processos envolvidos no planejamento, estimativa, orçamentação
e controle de custos de modo que o projeto termine dentro do orçamento aprovado.
Palavras chaves: estimar custo, determinar orçamento, controlar custo.
* Gerenciamento da Qualidade - processos envolvidos na garantia de que o projeto
irá satisfazer os objetivos para os quais foi realizado.
Palavras chaves: Planejar qualidade, realizar garantia e controle da qualidade.
* Gerenciamento de Recursos Humanos - processos que organiza e gerencia a equipe do projeto.
Palavras chaves: desenvolver plano de RH, mobilizar equipe, desenvolver e gerenciar equipe.
* Gerenciamento das comunicações - processos relativos a geração e disseminação da informação
do projeto as pessoas interessadas.
Palavras chaves: Identificar interessados, planejar comunicação, reportar desempenho,
gerenciar expectativas.
* Gerenciamento de Riscos - processos para realizar o gerenciamento dos riscos do projeto.
Palavras chaves: planejar e identificar riscos, fazer análise
qualitativa e quantitativa dos riscos, monitorar e controlar riscos.
* Gerenciamento de Aquisições - processos para compra e aquisição de produtos, serviços,
resultados e contratos.
Palavras chaves: planejar e realizar aquisições, administrar e encerrar aquisições.
5 - QUAIS AS HABILIDADES DE UM GERENTE DE PROJETO
São cinco:
Habilidades organizacionais - organização e planejamento
Habilidades para finanças e contabilidade - estimar custos e desenvolver orçamentos
Habilidades de liderar - direcionamento e envolvimento da equipe
Habilidades de negociar e influênciar - dialogar e obter consenso
Habilidades de comunicação - comunicação clara e objetiva
6 - DEFINA O CONTEXTO DO GERENCIAMENTO
São cinco:
Portfólio - carteira de negócios (conj. de programas e/ou projetos)
Programas - são conj. de projetos administrados juntos. Ex.: Programa Educacional
Projeto - é um esforço progressivo e temporário para criar um produto ou serviço único.
Tarefa - elemento de trabalho com duração, custo e recurso definido.
Pacote de trabalho - menor unidade de trabalho possível de ser planejada, controlada e executada.
7 - O QUE É UM PMO
Escritório de projetos. Orienta e fornece suporte aos gerentes de projeto.
8 - PORQUE ESTUDAR GERENCIAMENTO DE PROJETOS
Porque falhas em projetos em suas definições de tempo, prazo e custo são elevadas
quando não se aplicam técnicas consistentes de gerenciamento de projetos. Estudos
mostram que o uso de gerenciamento de projetos aumenta as chances do projeto concluir no prazo e no orçamento estipulado.
9 - PARA GESTÃO DE UM PROJETO, QUAIS OS CICLOS DE VIDA QUE PRECISAMOS CONSIDERAR
São três:
Ciclo de vida do produto - permanência do produto no mercado
Palavras chaves: idealização, concepção, construção, uso e descarte.
Ciclo de vida do projeto - descreve o que deve ser feito para completar o projeto (definem inicio, meio e fim)
Palavras chaves: Termo de abertura, plano do projeto, declaração do escopo, progresso, aceitação, aprovação, entrega
Cicle de vida da GP - descreve o que deve ser feito para gerenciar o projeto (grupos de processos)
Palavras chaves: iniciação, planejamento, execução, controle, encerramento.
10 - CARACTERÍSTICAS DO CICLO DE VIDA DE UM PROJETO DE SOFTWARE
- fases geralmente sequenciadas
- custos e uso do pessoal baixos no início, aumentam durante a execução e cai rapidamente no final
- no início do projeto, nível de incerteza e riscos maiores e caem no final
- capacidade dos stakeholders em influênciar no projeto são maiores no início
- mudanças tem maior impacto a medida que a execução do projeto avança
11 - QUEM SÃO OS STAKEHOLDERS
São os interessados no projeto, ou seja, pessoas ou organizações que influênciam
ou são influênciados, positivamente ou negativamente, pelos resultados de um projeto.
12 - QUEM SÃO OS PRINCIPAIS STAKEHOLDERS
Gerente do projeto, cliente, usuário, membros da equipe, patrocinador, fornecedores, PMOs.
13 - QUAIS OS FATORES DE SUCESSO DE UM PROJETO
- seleção dos processos adequados
- uso de abordagem definida
- atendimento aos requisitos do cliente
- balançeamento de interesses entre os vários interessados
14 - FATORES QUE DETERMINAM A NECESSIDADE OU NÃO DE GERENCIAMENTO DE PROJETO
- Tamanho do empreendimento
- Importãncia do empreendimento
- Reputação da organização
- Compartilhamento de recursos
- Não familiaridade - empreendimento completamente novo
15 - TIPOS DE PROCESSOS
- Orientado ao Projeto - Iniciação, planejamento, execução, controle, monitoramento, encerramento.
- Orientado ao Produto - Especificação e criação do produto do projeto.
quarta-feira, 12 de maio de 2010
Formatando datas no ORACLE para importar scripts do IBExpert
Ao executar scripts com inserts ou updates gerados pelo IBExpert do banco de dados Firebird no ORACLE, precisamos configurar corretamente a sessão para tratar o formato de data corretamente, caso contrário, ocorrerá erros na execução dos scripts.
Dois parâmetros no ORACLE devem ser configurados:
A máscara default utilizado pelo IBExpert para formatar as datas é 'YYYY-MM-DD' para o tipo DATE e 'YYYY-MM-DD HH:MI:SS' para o tipo TIMESTAMP. No ORACLE pode-se executar os seguintes comandos para configurar as máscaras:
Seguindo estes procedimentos, consegue-se importar registros que contém campos de data e timestamp de forma simples.
Uma observação é quanto ao tipo TIME do Firebird, inexistente no ORACLE. Para este tipo de dados pode-se armazenar como VARCHAR2(8).
Até o próximo post!
Dois parâmetros no ORACLE devem ser configurados:
- nls_date_format
- nls_timestamp_format
A máscara default utilizado pelo IBExpert para formatar as datas é 'YYYY-MM-DD' para o tipo DATE e 'YYYY-MM-DD HH:MI:SS' para o tipo TIMESTAMP. No ORACLE pode-se executar os seguintes comandos para configurar as máscaras:
Para o tipo DATE:
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';Para o tipo TIMESTAMP:
ALTER SESSION SET NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS';Seguindo estes procedimentos, consegue-se importar registros que contém campos de data e timestamp de forma simples.
Uma observação é quanto ao tipo TIME do Firebird, inexistente no ORACLE. Para este tipo de dados pode-se armazenar como VARCHAR2(8).
Até o próximo post!
sexta-feira, 7 de maio de 2010
Oracle Pipelined Table Functions
Material sobre como implementar procedures selecionável, um recurso do Firebird em ORACLE através de funções pipelined table functions:
http://www.akadia.com/services/ora_pipe_functions.html
http://mail.firebase.com.br/pipermail/lista_firebase.com.br/2008-February/049950.html
http://www.akadia.com/services/ora_pipe_functions.html
http://mail.firebase.com.br/pipermail/lista_firebase.com.br/2008-February/049950.html
quinta-feira, 6 de maio de 2010
Ativar teclas de atalho para o sqlplus no Linux
Muitos sabem que ao trabalhar com sqlplus no Linux, não temos a opção de utilizar teclas de atalho para navegar entre os comandos digitados.
Recentemente descobri uma software que pode ser instalado, que permite ativar as teclas de atalho para o sqlplus. Para instalar digite o seguinte comando no prompt de comando.
sudo apt-get install rlwrap
Após instalado, precisamos invocar o sqlplus desta forma:
rlwrap sqlplus user/senha
Com isso, teremos um histórico de comandos da mesma forma que em ambiente Windows.
Recentemente descobri uma software que pode ser instalado, que permite ativar as teclas de atalho para o sqlplus. Para instalar digite o seguinte comando no prompt de comando.
sudo apt-get install rlwrap
Após instalado, precisamos invocar o sqlplus desta forma:
rlwrap sqlplus user/senha
Com isso, teremos um histórico de comandos da mesma forma que em ambiente Windows.
quarta-feira, 5 de maio de 2010
Usando sudo para executar comandos como root no Linux
No Linux, quando você precisar executar um comando que exige permissões de root, pode-se usar o comando sudo. Ao usar o comando sudo, o Linux vai pedir a senha do root e executar o comando.
Para que qualquer usuário possa utiliza-lo é necessário informar ao Linux que o usuário pertence ao grupo sudo. Podemos fazer isso através do usuário root da seguinte forma:
usermod -G sudo agilar
O comando acima adiciona o usuário agilar no grupo sudo. A partir dai, pode-se utilizar sudo toda vez que precisarmos executar um comando com permissões de root para o usuário agilar.
Para que qualquer usuário possa utiliza-lo é necessário informar ao Linux que o usuário pertence ao grupo sudo. Podemos fazer isso através do usuário root da seguinte forma:
usermod -G sudo agilar
O comando acima adiciona o usuário agilar no grupo sudo. A partir dai, pode-se utilizar sudo toda vez que precisarmos executar um comando com permissões de root para o usuário agilar.
domingo, 7 de março de 2010
Windows Seven com Delphi 7
1 - Ao instalar o Delphi 7 diversos arquivos BPL são instalados na pasta C:\Windows\SysWOW64.
A pasta SysWOW64 contém as DLLs de 32 bits. Já a pasta C:\Windows\System32 contém arquivos DLLs de 64 bits. Quando um programa necessita de uma DLL de 32 bits, automaticamente é redirecionado para a pasta C:\Windows\SysWOW64. Pode parecer estranho, mas é assim que o Windows funciona. A pasta C:\Windows\System32 ainda continua existindo, mas seu conteúdo é de 64 bits!
2 - Como substituir o QuickReport do Delphi 7 por outra versão.
Antes de instalar a bpl qrpt70.bpl deve-se primeiro excluir o arquivo c:\windows\SysWOW64\qrpt70.dll e reabrir o Delphi.
3 - Mostrar arquivos e pastas ocultas do Windows
No Windows Explorer, clique no botão Organizar, Opções de pasta e pesquisa. Na janela "Opções de Pasta" possui diversos opções para mostrar pastas e arquivos ocultos.
4 - Como acessar a pasta "Arquivos de Programas" no menu Executar.
Digite "program files".
Obs.: Se você digitar "arquivos de programas" como no Windows XP, aparece a mensagem acesso negado.
A pasta SysWOW64 contém as DLLs de 32 bits. Já a pasta C:\Windows\System32 contém arquivos DLLs de 64 bits. Quando um programa necessita de uma DLL de 32 bits, automaticamente é redirecionado para a pasta C:\Windows\SysWOW64. Pode parecer estranho, mas é assim que o Windows funciona. A pasta C:\Windows\System32 ainda continua existindo, mas seu conteúdo é de 64 bits!
2 - Como substituir o QuickReport do Delphi 7 por outra versão.
Antes de instalar a bpl qrpt70.bpl deve-se primeiro excluir o arquivo c:\windows\SysWOW64\qrpt70.dll e reabrir o Delphi.
3 - Mostrar arquivos e pastas ocultas do Windows
No Windows Explorer, clique no botão Organizar, Opções de pasta e pesquisa. Na janela "Opções de Pasta" possui diversos opções para mostrar pastas e arquivos ocultos.
4 - Como acessar a pasta "Arquivos de Programas" no menu Executar.
Digite "program files".
Obs.: Se você digitar "arquivos de programas" como no Windows XP, aparece a mensagem acesso negado.
quarta-feira, 10 de fevereiro de 2010
Transações em PostgreeSQL
Artigo sobre transações no iMasters disponível em http://imasters.uol.com.br/artigo/1097/postgresql/transacoes_com_o_postgresql_parte_iii/imprimir/
segunda-feira, 25 de janeiro de 2010
Usando condições ANY ou SOME
Dado o esquema a seguir:
SQL> desc valores Nome Nulo? Tipo ------------------- -------- --------- V NUMBER(38) SQL> select * from valores; V ---------- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 18 linhas selecionadas. SQL>
Exemplos de Condições SQL
EXEMPLO 1
SQL> select * from valores
2 where v = some(1, 3, 10);
V
----------
1
3
10
3 linhas selecionadas.
EXEMPLO 2
1 select * from valores
2* where v > some(3, 10, 11)
SQL> /
V
----------
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
15 linhas selecionadas.
EXEMPLO 3
1 select * from valores
2* where v > all(3, 10, 11)
SQL> /
V
----------
12
13
14
15
16
17
18
7 linhas selecionadas.
Assinar:
Postagens (Atom)