Como posso recuperar o boot loader?

Introdução

Fonte: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=913

Opa, pessoal!

Tenho acompanhado muito a parte de perguntas do site e uma questão que se repete geralmente a cada 3 ou 4 meses é a seguinte:

Tive que instalar novamente o Windows. Tem como recuperar novamente o Grub?

ou ainda:

Utilizo o lilo e tive que formatar o Windows e o lilo sumiu! E agora?

Bom, se você tem precisa de uma solução para algum desses casos, esse artigo é pra você!

Vamos começar. Você tem 3 opções para recuperar seu boot loader:

  • Utilizar o disco de boot;
  • Instalar uma distro mais leve;
  • Utilizar o CD de instalação.

A primeira é uma idéia citada pelo nosso membro ardezzoni, que é utilizar um disco de boot. Essa é a mais fácil e permite a você cair no sistema normalmente. A partir daí basta reinstalar o lilo ou o grub. Mas, como na maioria dos casos não gostamos de criar os benditos discos durante a instalação do sistema hehehe…

A segunda forma foi ditada por lindbergluiz, que consiste em instalar uma distro mais leve sem os pacotes desnecessários e ai instalar o lilo nessa, editando o /etc/lilo.conf ou o arquivo de configuração do grub. Certamente isso nos tomaria muito tempo…

O mesmo usuário deu a sugestão de utilizar o “boot loader” da instalação para tentar carregar diretamente a partição, passando como parâmetro “root=/dev/hdaX” (referente a onde foi instalado o Linux anteriormente). Certamente esta seria uma 4° forma eficiente também, onde você cairia no sistema e só teria que logar e reinstalar. 🙂

A terceira forma que podemos aplicar consiste em utilizar o CD de instalação do seu Linux. Não importa se a instalação da sua distro seja em modo gráfico ou texto, sempre temos terminais pra utilizar durante a instalação.

Bootando pelo CD de instalação e alterando o console para um texto (CTRL+ALT+F2), podemos montar a partição onde foi instalado o Linux anteriormente:

# mount /dev/hdaX /mnt/

E então dizemos que esse diretório será nossa nova “/”:

# chroot /mnt

Agora basta instalar normalmente o carregador de boot.

Para o lilo:

# lilo

Para o Grub:

# grub

A terceira forma me parece ser mais útil, pois sempre temos o CD de instalação do nosso Linux por perto (pode ser de outra distro, se for o caso). Já que nem sempre criamos o disco de boot ou temos espaço para instalar uma distro pequena.

Anúncios

Criptografia em 3 linhas

Fonte: http://jchrisos.wordpress.com/2008/03/26/criptografia-em-3-linhas/

Olá pessoal!!!

Todos sabem como é importante uma aplicação ter segurança, tanto ela sendo para web, desktop, dispositivos móveis, etc. Por isso existem vários conceitos de segurança de software e um deles é a criptografia. Para saber mais sobre criptografia clique aqui e segurança da informação clique aqui. Neste post mostrarei um exemplo de como criptografar uma senha utilizando o algoritmo MD5.

Eu já vi muitos tutoriais ensinando como criptografar informações, mas todos faziam uma implementação horrível, utilizavam arrays de bytes que depois cada elemento era tranformado em um valor hexadecimal e mais outras coisas. A classe no final tinha 20 a 30 linhas, lembrando até aqueles tutoriais ou livros de Java 1.2!!

Como eu não estava contente com essas implementações, dei uma fuçada no google e achei uma implementação que é muito simples. Essa implementação tem três linhas de código e gera o mesmo resultado dos monstrengos de 30 linhas.

Segue o código:


import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class TesteCriptografia {

public static void main(String[] args) throws NoSuchAlgorithmException {

String input = "123456";

MessageDigest md = MessageDigest.getInstance("MD5");
BigInteger hash = new BigInteger(1, md.digest(input.getBytes()));
String output = hash.toString(16);

System.out.println(output.toUpperCase());

}

}

Quando é referenciada uma instância de MessageDigest é necessário tratar a exception NoSuchAlgorithmException, porque pode ser lançada caso seja passado um algoritmo que não exista, por exemplo MDiii5. Mas pra que você vai colocar um algoritmo que não exista?!

Eu testei a mesma senha nesta e em mais 2 implementações diferentes e todas deram o mesmo resultado. Então esta é uma implementação que trabalha da mesma forma trazendo os mesmos resultados, porém de uma implementação muito mais simples.

Até o proximo post!

Introdução ao Eclipse RCP

Conheça a plataforma que está revolucionando a maneira de desenvolver sistemas desktop com Java.

 

Autor: André Castiliano

Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4352

 

A plataforma RCP do eclipse fornece uma maneira simples, poderosa e flexível de desenvolver sistemas desktop usando a linguagem de programação Java.

SWT

O Eclipse utiliza o toolkit gráfico SWT (Standard Widget Toolkit) no lugar do tradicional Swing. Existe muito debate sobre qual o melhor deles, cada qual com suas vantagens e desvantagens. O SWT difere do Swing basicamente por não tentar emular componentes, ele usa os controles e diálogos do sistema operacional sobre o qual a JVM está sendo executada. Isto faz com que as aplicações escritas com base no SWT se pareçam com aplicações nativas, como as escritas em Visual Basic ou Delphi, por exemplo, enquanto que o swing desenha os próprios widgets, que mantêm a consistência nas várias plataformas onde é executado, mas com pequenas falhas por não utilizar componentes nativos (um exemplo clássico sendo a tela de ‘Abrir arquivo’ que, apesar de parecer “real”, é falsa, não propiciando ao usuário as mesmas características que a tela nativa do sistema operacional).

Sem querer entrar no mérito da questão, a característica do SWT de herdar o visual das aplicações nativas (e mais do que isso, de usar os componentes nativos do sistema) é o foco de sua existência, e de extrema importância em alguns ambientes onde já se criou resistência ao Java como linguagem de programação para desktop.

O efeito “eu não acredito que isto é Java” provocado pelo SWT/Eclipse realmente existe. Você verá.

É importante notar que, apesar do SWT ser um componente chave da plataforma eclipse, trata-se de uma biblioteca independente, que pode ser utilizada isoladamente para construir aplicações Java para desktop, de maneira simples e rápida.

JFace

Além do SWT, o eclipse usa extensivamente a biblioteca JFace, que extende o SWT básico, adicionando-lhe novos diálogos, controles e classes úteis.

O JFace também pode ser utilizado fora da plataforma eclipse, adicionando mais poder às suas aplicações SWT.

A figura 01 abaixo mostra a relação entre os componentes da plataforma RCP.

inteclrcpfig01.jpg

Figura 01: Eclipse Workbench

Obviamente existem vários outros componentes dentro da plataforma RCP, mas o ‘workbench’ (este e outros termos serão esclarecidos posteriormente) do eclipse é construído usando-se as bibliotecas SWT e JFace.

Se desejar maiores informações sobre o uso das bibliotecas SWT e JFace fora da plataforma eclipse, leiam o artigo SWT, JFace e Componentes – Parte 1 aqui mesmo na DevMedia.

Plugins

No eclipse, tudo são plugins. O próprio eclipse (IDE) é constituído de um conjunto de plugins inter-relacionados. Suas aplicações RCP são também conjuntos de plugins. O “peso” da plataforma RCP gira em torno de 12MB (Eclipse 3.2) variando de acordo com os recursos utilizados.

Para um maior entendimento, vamos criar o famoso exemplo “Hello World” usando a plataforma Eclipse. Afinal, o que seria de um artigo introdutório à uma nova técnica de programação sem um exemplo Hello World ?

Primeiro, caso ainda não o tenha feito, baixe o Eclipse SDK, do site oficial do projeto. No momento em que este artigo estava sendo escrito a versão estável mais recente era a 3.2.1.

Faça também o download do NL1 (Language Pack) para ter seu eclipse traduzido para pt-BR.

A instalação do eclipse é extremamente simples, basta descompactá-lo numa pasta qualquer e executar o eclipse.exe. Claro, estamos presumindo que você já tenha o J2SE JDK instalado em seu computador. Se ainda não tiver, faça o download no site oficial do Java. Cuidado para não baixar o pacote da JDK6 que vem com o NetBeans junto. J

Hello World

Agora que você está com o ambiente pronto, vamos criar o nosso plugin de teste.

No Eclipse, vá em Arquivo à Novo à Projeto conforme ilustrado na figura 02 mostrada abaixo:

inteclrcpfig02.jpg

Figura 02: Novo projeto no eclipse

Surgirá a tela “Novo projeto mostrada na figura 03:

inteclrcpfig03.jpg

Figura 03: Assistente de novo projeto

Selecione a opção Projeto de Plug-In e clique sobre o botão Avançar.

Agora o assistente de novo projeto exibe uma tela semelhante à figura 04 mostrada abaixo:

inteclrcpfig04.jpg

Figura 04: Configurações iniciais do projeto

Nome do projeto: br.com.devmedia.HelloWorld

Aceite o restante das configurações padrão apresentadas nesta tela.

Clique novamente sobre o botão Avançar e a tela agora se parecerá com a figura 05:

inteclrcpfig05.jpg

Figura 05: Detalhes da configuração do plugin

Esta tela tem 2 opções realmente importantes:

A primeira, dentro do grupo “Opções de Plug-in” informa se este plugin fará ou não contribuições à UI (User Interface) do Eclipse. Num projeto de porte médio ou grande você provavelmente terá plugins que não são gráficos, fornecendo apenas recursos aos demais plugins. Por exemplo um plugin com as classes que servem de interface para a camada de persistência.

A segunda opção está dentro do grupo “Aplicativo de Cliente Rich” e permite a você informar se este plugin é a base de um programa RCP. Por padrão vem marcado como Não, mas para o nosso exemplo será necessário alterar esta configuração para Sim, conforme mostrado na figura 05.

Após preencher as opções desta tela, clique novamente sobre o botão “Avançar” e a tela se parecerá com a figura 06:

inteclrcpfig06.jpg

Figura 06: Modelos de aplicativos RCP para escolher

Uma grata surpresa! O assistente de novo projeto do eclipse nos apresenta uma tela com 4 modelos de aplicativos Rich Client para escolher. Estes modelos servem como base para a criação do seu sistema, evitando que muita coisa precise ser escrita “no braço”.

Utilizando um destes modelos, o próprio Eclipse se encarrega de gerar um esqueleto do projeto com todas as classes necessárias para inicializar corretamente o seu aplicativo.

Para o nosso programa de testes, iremos utilizar o modelo que tem o sugestivo nome de “Hello RCP”. Selecione-o na listagem mostrada, conforme indicado pela figura 06.

Você pode agora clicar sobre o botão “Concluir” e deixar que o Eclipse faça a geração do código necessário ou clicar em “Avançar” e preencher mais algumas informações sobre o projeto, como mostrado na figura 07 abaixo:

inteclrcpfig07.jpg

Figura 07: Ultimas informações sobre o novo plugin

Ao clicar em “Concluir” o Eclipse irá gerar todos os arquivos necessários ao seu projeto. Para executar o seu primeiro programa RCP, clique sobre o link “Ativar um Aplicativo Eclipse” na aba que estará aberta após a confirmação no assistente de novo projeto, conforme ilustrado pela figura 08:

inteclrcpfig08.jpg

Figura 08: Editor de configurações do plugin

Executando o nosso plugin Hello World, obtemos:

inteclrcpfig09.jpg

Figura 09: Primeira aplicação RCP

Agora que você já conhece a plataforma Eclipse e o assistente para criação de novos plugins, sugiro que explore os outros modelos apresentados. Estude as classes geradas pelo assistente e leia a documentação disponível no site oficial do projeto eclipse.

Nos próximos artigos, irei aprofundar mais nos meandros da plataforma Eclipse, mostrando dicas e boas práticas ao trabalhar com a plataforma. Iniciaremos a construção de um pequeno sistema de vendas, que nos permitirá abranger áreas bem distintas, que vão desde a construção de telas internas usando SWT/JFace, os detalhes da camada de persistência até os relatórios finais em jasper reports.Até o próximo artigo.