quarta-feira, 28 de janeiro de 2009

Criando Ícones de aplicações no Linux

Como o Oracle SQL Developer, para o Linux só está disponível em pacote .rpm, usuários do Ubuntu, tem que usar o Alien para converter o pacote para .deb ou baixar a versão .zip para poder descompactar e usar o aplicativo.

O problema é que a versão .zip não gera ícones e menus na área de trabalho, mas isso não é problema, abaixo segue exemplo de um script que cria o ícone na sua área de trabalho, para que  você não precise executar o aplicativo via comando toda vez que for inicializar o programa.

Para criar o ícone basta digitar o  código abaixo que é o próprio ícone em si, o que deve ser feito é passar os caminhos dos arquivos necessários para que o ícone seja criado na área de trabalho e  após criar o arquivo, é só salvar com o nome da aplicação com por exemplo SQLDeveloper.Desktop e pronto, só não se esquecer de salvar o ícone na área de trabalho.

==========================================================[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=SQL Developer
Type=Application
Terminal=false
Exec=sh /opt/sqldeveloper/sqldeveloper.sh
Icon[pt_BR]=/opt/sqldeveloper/icon.png
Name[pt_BR]=SQL Developer
Comment[pt_BR]=SQL Developer
Comment=SQL Developer
GenericName[pt_BR]=
Icon=/opt/sqldeveloper/icon.png ==========================================================

Espero que ajude.

segunda-feira, 26 de janeiro de 2009

Como Limpar Todos os Edit's de um Form de uma só vez

Pra você que tem uma tela cheia de Edits e sempre precisa estar limpando, segue uma dica legal para fazer uma limpeza geral.

procedure LimpaEdit (Form: TForm);
var
i : Integer;
begin
for i := 0 to Form.ComponentCount - 1 do
if Form.Components[i] is TCustomEdit then
(Form.Components[i] as TCustomEdit).Clear;
end;
// assim limpara todos os Edits, Memos, MaskEdits, etc...
//Valeu!!

Caracteres Especiais que compõem uma MaskEdit

Segue uma lista de caracteres especiais para você montar sua mascara


! - Espaços em branco não aparecerão
> - Todos os caracteres seguintes serão maiúsculos até que apareça o caracter
< - Todos os caracteres seguintes serão minúsculos até que apareça o caracter
\ - Indica um caracter literal
l - Somente caracter alfabético
L - Obrigatoriamente um caracter alfabético (A-Z, a-z)
a - Somente caracter alfanumérico
A - Obrigatoriamente caractere alfanumérico ( A-Z, a-z, 0-9)
9 - Somente caracter numérico
0 - Obrigatoriamente caracter numérico
c - permite um caracter
C - Obrigatoriamente um caracter
# - Permite um caracter numérico ou sinal de mais ou de menos, mas não os requer.
: - Separador de horas, minutos e segundos
/ - Separador de dias, meses e anos

Conceito de Banco de Dados Relacional


Os principios do modelo de dados relacional foram descritos por Dr. E. F. Codd em junho de 1970 intitulado de "A Relational Model of Data for Large Shared Data Banks".
Os modelos usados na época eram hierarquicos, rede, estruturas de dados simples de flat files.

Componentes do Modelo Ralacional:
  • Conjunto de objetos ou relações que armazenam dados
  • Um conjunto de operadores que age sobre as relações para produzir outras relações
  • Integridade de dados para precisão e consistência.

Definição de um Banco de Dados Relacional

Um banco de dados relacional é um conjunto de relações ou tabelas de duas dimensões, por exemplo é possível armazenas informações de todos os funcionários de uma empresa, em um banco relacional você pode criar diversas tabelas para armazenar diferentes informações sobre os funcionários com uma tabela de funcionário, uma de departamento e outra de salários.

Por que usar um Banco de Dados Relacional?
Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações.
A linguagem padrão dos Bancos de Dados Relacionais é a Structured Query Language, ou simplesmente SQL, como é mais conhecida.

Tabelas (ou relações, ou entidades)
Os dados de um banco de dados relacional são armazenados em tabelas. Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas.

As tabelas associam-se entre si através de regras de relacionamentos.
Exemplo: A tabela funcionário relaciona-se com a tabela cargo. Através deste relacionamento esta última tabela fornece a lista de cargos para a tabela funcionário.

Registros (ou tuplas)
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla. Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário.
Exemplo: O empregado Pedro é uma instância (registro) da tabela funcionário, e a função Analista Comercial é a instância (registro) da tabela cargo. Uma associação entre estas duas tabelas criaria a seguinte instância de relacionamento: Pedro é Analista Comercial, onde o verbo ser representa uma ligação entre os registros distintos.

Colunas (ou atributos)
As colunas de uma tabela são também chamadas de Atributos. Ao conjunto de valores que um atributo pode assumir chama-se domínio. Por exemplo: em um campo do tipo numérico, serão somente armazenados números.

Chave
As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.
Por exemplo, se um banco de dados tem como chaves Código do Produto e ID Sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontraria gravado na tabela.



domingo, 25 de janeiro de 2009

GRUB - Grand Unified Bootloader

Bom pessoal, quem nunca teve problemas com o GRUB?

O GRUB(Grand Unified Bootloader) é um multi-carregador de sistema operacional, ou seja, é capaz de inicializar diversas imagens de boot e módulos, podendo carregar sistemas operacionais como o Windows, Linux, GNU Hurd, BSD, Minix, etc.

Também permite buscar imagens do kernel pela rede, por cabos seriais, suporta discos rígidos IDE, SATA e SCSI, detecta toda a memória RAM disponível no sistema. Sua interface é voltada para linha de comandos e menus de escolha e também suporta sistemas sem discos e terminais remotos.

Vou citar as principais opções de configuração do /boot/grub/menu.lst, que deverá ser usada caso haja algum problema com o arquivo menu.lst, como remoção indevida ou se o arquivo venha a ser corrompido de alguma forma.

Parâmetros que afetam a imagem:

  • title: define o título que será apresentado no menu de boot para indicar o sistema;

  • root: determina qual é a partição raiz de uma determinada imagem;

  • kernel: informa qual a imagem de kernel que vai ser carregada. Também pode ser passado alguns parâmetros de kernel;

  • ro: monta inicialmente em modo somente leitura

  • initrd: caminho para a imagem initrd.

Abaixo segue a imagem padrão do GRUB no boot do sistema operacional, onde apenas escolhemos qual Kernel iremos iniciar o Linux ou outro SO.

GrubMenu

Caso apareça a tela abaixo e não consigamos através da tecla ESC voltar para o menu do GRUB, isso significa que de alguma forma o nosso arquivo menu.lst foi corrompido.

GrubMenuComando

Então o que devemos fazer é inserir as diretivas de boot na mão, isso pode parecer um pouco complicado, mas se tivermos em mente quais são nossas partições do Linux em nosso sistema, fica bem facil de corrigir o problema.

GrubMenuComandoStart

Vou tentar explicar o que a imagem acima se refere:

  • root (hd0,1), é a minha partição /dev/sda2 que é a partição raiz do sistema, ou seja, minha partição /;

  • kernel /boot/vmlinuz………, é a minha imagem do kernel;

  • initrd /boot/initr……, é a minha imagem initr;

  • boot, irá inicializar o processo de boot do sistema.

Após terminar o processo de boot, você conseguirá usar seu sistema Linux, normalmente, mas vale lembrar que toda vez que for dado boot no seu sistema, ele irá pedir para informar os dados acima novamente. Para que isso não ocorra será preciso criar o arquivo menu.lst na pasta /boot/grub do sistema, assim o GRUB irá funcionar como era anteriormente.

Para instalarmos o GRUB na MBR é necessário executar no terminal o comando /sbin/grub – install /dev/seu hd onde o hd poderia ser /dev/hda ou /dev/sda.

Vale lembrar que as alterações realizadas no arquivo menu.lst, podem ser feitas normalmente sem precisar reinstalar o GRUB como ocorre normalmente no LILO.

Espero ter ajudado e até a próxima.

segunda-feira, 19 de janeiro de 2009

Forçar um Edit a Aceitar Só Letras ou Só Números

No evento OnKeyPress do Edit.

Só números:
if not (Key in['0'..'9',Chr(8)]) and (Key #13) and (Key #8) then
Key := #0;

Só letras:

if (Key in['0'..'9',Chr(8)]) and (Key #13) and (Key #8) then
Key := #0;

EXECUTANDO PROGRAMAS EXTERNOS

Se você precisa abrir programas externos no seu aplicativo DELPHI, como a calculadora do Windows, por exemplo, inclua a seguinte linha no seu programa:

WinExec('calc.exe', sw_show);

'calc.exe' é o nome do programa. Caso queira abrir um outro programa, altere este nome.

sexta-feira, 16 de janeiro de 2009

FSTAB

Bom, hoje vou falar um pouco sobre o arquivo FSTAB, este que por sua vez, tem a função de armazenar a configuração dos dispositivos que serão montados e qual é o ponto de montagem de cada um na carga do sistema operacional.

O arquivo FSTAB fica localizado em /etc/fstab e contem os seguintes campos:

  • Dispostivo: Especifica o dispositivo a ser montado;
  • Ponto de Montagem: O diretorio em que o dispositivo será montado;
  • Tipo de Sistema de Arquivos: Especifica qual é o tipo de arquivo a ser montado;
  • Opções de Montagem: Especifica as opções de montagem dependendo do tipo de sistema de arquivos.
  • Dump: Especifica a frequencia de backup feita com o programa dump no sistema de arquivos.
  • Ordem de checagem: Determina a ordem de checagem feita pelo fsck durante a inicialização, onde os valores 0 é para não checar na incialização e 1 é para ser checado primeiro o sistema raiz.

Opções de Montagem

Opção

Descrição

rw ou ro

Gravável ou somente leitura

auto Habilita o dispositivo para ser montado na carga do sistema operacional

noatuo

Não é montado automaticamente

users

Usuários comuns podem montar e desmontar o dispositivo

ser

Apenas o usuario que montou terá permissão para desmontar

owner As permissões do dispositivo montado segue as dos usuário que o montou
nouser Somente o root pode montar
noexec Desabilita a execução de arquivos
exec Habilita a execução de arquivos no sistema de arquivos especificado
sync Habilita a tranferência de dados sincrona no dispositivo
suid Habilita que os executaveis tenham bits do suid e sgid, a opção oposta é nosuid
defaults Configura as opções de montagem como rw, suid, exec, auto, nouser e async

Abaixo segue imagem de um arquivo FSTAB configurado para montar partições Linux e Windows no Slacware 12.1.

Fstab








Onde /dev/sda6 é minha partição SWAP, e /dev/sda4 minha partição /(raiz), bem como as outras partições, vale lembrar que sda poderia ser hda isso vai depender do tipo de hd que você usa, se é IDE, SATA, SCSI, etc.

Bom realizado as alterações das partições do seu sistema de arquivos, não é necessário reiniciar a máquina, bastando apenas executar o comando mount –a /dev/sda no prompt de comando que seus sistemas de arquivos estarão disponíveis para você.

Para escrever este post foi usado como referência os livros: Certificação Linux(Uira Ribeiro), Certificação LPI-1(Luciano Antonio Siqueira) e Dominando o Red Hat Linux 7(Bill Ball, David Pitts).

quarta-feira, 14 de janeiro de 2009

Trabalho de Faculdade - TIRE O ‘S’ DA CRISE

Trabalho de Faculdade

TIRE O ‘S’ DA CRISE

Novas reações dependem das informações que recebemos, então até aonde uma noticia negativa nos pode nos influenciar?

Ao contrario de que todos pensam a crise faz agente crescer, pois a crise depende do foco da analise de como as enxergamos, sendo que o seu futuro esta na raiz de sua crise.

Muitos temem por errar no futuro, deixando de participar nas tendências do mercado, mas como tudo nessa vida, temos que ter planejamento, uma crise pode ser uma oportunidade, crise não quebra nenhuma empresa o que gera declínio em uma empresa é a má administração de mudança.

Devemos ser positivos e otimistas, cuidando da informação que vai para o celebro, pois a razão do sucesso, é criar na cabeça o positivismo, e focar na capacidade de fazer e implementar, pois os que fazem pegam lugar dos que não fazem.

Então novamente podemos dizer que a queda da empresa não é causada pela crise, mas pela má administração de mudança e falta interna de gestão e capacitação de pessoas.

A crise deve ser encarada, para enfrentar a crise é necessária à antecipação, definir estratégias, pontos e fatores de risco e o mais importante, para que não caia em crise é necessário o aumento de informação, pois a informação é o fator de sucesso.

Uma empresa para se manter longe da crise deve ter competitividade, deve ser obcecado por oportunidades, pois o mundo é feito de visão e oportunidade, e não podemos esquecer de ficarmos atentos com os ricos que ao serem previstos com antecedência podem conter a crise.

A mutação do negócio leva-nos a reciclagem que é fundamental irmos para onde o mundo cresce.

Devemos ter humildade e agilidade, humildade para saber mudar, nunca apostando sempre no futuro do passado mais sim apostando na inovação, pois para enfrentar a crise devemos ter agilidade tendo antecipação, não dependendo exageradamente de ninguém pois o mundo é de mudanças e no momento de mudança não podemos colocar na mão de terceiros, devemos manter uma dependência confortável.

Outro fator importante é ter coragem para mudar e abandonar, pois devemos acompanhar as mudanças não resistindo às mudanças tendo capacidade de inovação como monitoramento.

Devemos também ter paciência e persistência puxando o lado da motivação, para enfrentar a crise devemos estar dotados de características comportamentais, porque sozinho ninguém domina a crise, devemos ser responsáveis pelos nossos atos não culpando terceiros por erros que nós mesmos causamos.

Principais Eventos do Delphi

Segue uma dica sobre qual a funcionalidade dos principais eventos do Delphi


OnChange - Ocorre quando um determinado valor de um objeto ou componente é alterado
OnClick - Ocorre quando o usuário da um clique sobre o componente
OnDblClick - Ocorre quando o usuário da um duplo-clique sobre um componente
OnDragDrop - Ocorre quando o usuário solta um objeto sendo arrastado
OnDragOver - Ocorre quando o usuário arrasta um objeto sobre um componente
OnEndDrag - Ocorre quando termina o arrasto de um objeto
OnEnter - Ocorre quando um componente torna-se ativo
OnExit - Ocorre quando o foco de input passa de um componente para outro
OnKeyDown - Ocorre quando o usuário pressiona qualquer tecla quando um componente possuir o foco
OnKeyPress - Ocorre quando o usuário pressiona uma única tecla de caractere
OnKeyUp - Ocorre quando o usuário solta uma tecla que estava pressionada
OnMouseDown - Ocorre quando o usuário pressiona o botão mouse enquanto o ponteiro do mouse estiver sobre um componente
OnMouseMove - Ocorre quando o usuário move o ponteiro do mouse quando o ponteiro do mouse estiver sobre o componente
OnMouseUp - Ocorre quando o usuário solta o botão do mouse quando o ponteiro do mouse estiver sobre um componente