sexta-feira, 22 de maio de 2009

Certificação JAVA: Sobrecarga de construtores


Bom pessoal, hoje vamos começar aqui no blog uma série de posts com dicas para certificação Java SCJP, Certificação com o JLiVe. Como estou começando a estudar para conseguir esta certificação, estes posts vão servir tanto para mim quanto para quem tem o mesmo objetivo.

Vamos então:

Sobre construtores, considere o código abaixo.

1.   public class Teste
2. {
3. public Teste(String str){
4. System.out.println ("Teste(String) executado");
5. }
6. public Teste(Object obj){
7. System.out.println ("Teste(Object) executado");
8. }
9. public Teste(){
10. System.out.println ("Construtor sem argumentos executado");
11. }
12. public static void main(String[] args) {
13. Teste teste = new Teste(null);
14. }
15. }
Qual a opção correta?
  1. chama o construtor public Teste(String str)
  2. chama o construtor public Teste(Object obj)
  3. chama o construtor public Teste()
  4. Código não compila, nenhum construtor adequado definido.
A resposta correta é a número 1. Tanto o construtor que recebe Object e o que recebe uma String são considerados pelo compilador como elegíveis. O null apesar de ser nada... ele está sendo passado como parâmetro, é uma referencia vazia, por tanto o construtor sem parâmetro não é chamado.
Entre o String e o Object o compilador escolhe o mais especifico. Mais o que string tem a ver com null? O null é nada, nada pode ser string ou object (?)... O string é escolhido pois sempre que vc passar uma string você vai poder fazer cast pra object, mas nem todo object vai poder ser uma string.

Dúvidas???
Falei bobagem???

Então entre em contato... através de comentário


abraços.

quinta-feira, 21 de maio de 2009

Skype para Ubuntu 64bits (Linux)


Já foi postado aqui no blog por Diego (leia aqui) um macetinho pra fazer o skype funcionar na arquitetura 64bits. Contudo, navegando pelo skype comunity, achei um link para o skype na na arquitetura 64bits aparentemente sem armengues.

confiram: http://www.skype.com/go/getskype-linux-ubuntu-amd64


OBS.: Ainda não testei a versão informada acima, pois, aqui no trabalho, minha máquina é de 32bits.

Deixem seus comentários a respeito

quarta-feira, 20 de maio de 2009

1 Ano de Blog!

Como não poderia deixar de ser, estou aqui para lembrar a todos do primeiro aniversário do JaLiVE (Java Linux e Vatapá Experts). Tudo começou dia 11/05/2008 com o post Ubuntu + Active Directory: Um guia simples e definitivo, ainda éramos eu e Mário apenas no blog, mas mesmo assim fizemos um trabalho legal. De lá pra cá o blog só fez crescer e mais pessoas fizeram e fazem parte dessa história. Atualmente o quadro de colaboradores do blog é:
  • Allan Charlles
  • Diego Barreto
  • Ian Laborda
  • Mário Jorge
  • Murilo Caetano
Nós esperamos que o blog cresça cada vez mais e possa trazer mais conteúdo para todos, incluindo nos mesmos... :)
Vida eterna ao JaLiVE!

MacOs Hospedeiro e Windows Virtual

Eu precisei instalar o Windows numa máquina virtual (VirtualBox) a partir de um MacBook (MacOs X). A máquina virtual estava beleza, a não ser pelo detalhe do teclado, pois o teclado do MacBook é diferente do teclado que o Windows esperava (por exemplo o teclado do MacBook não tem a tecla delete, tem apenas o backspace).
Tentando encontrar um software que resolvesse o meu problema eu encontrei o KeyTweak. Ele é um software free que consegue remapear teclas do teclado a fim de deixá-lo mais adequado à sua necessidade.

Apostila Fj21 da Caelum

Ontem resolvi acessar o site da Caelum, observei que a apostila gratuita que eles distribuem do curso de java web (FJ21), havia sido atualizada em fevereiro de 2009. Quando comecei a estudar java web essa apostila me ajudou muito e quando comecei a estagiar na área - em 2008 - meu treinamento foi praticamente baseado na apostila. Observei que a apostila está bem interessante. Uma das coisas que me chamou atenção de cara foi na seção "11.1 - Propriedades de páginas JSP" da apostila. Nesta seção eles destacam as novas propriedades permitidas pela API do JSP que são:

- Desativar Scriptlets nas páginas jsp.
<scripting-invalid>true</scripting-invalid>
Ao conversar com um colega de trabalho sobre esta possibilidade ele comentou "que bom, assim acaba com a macarronada nos jsp". Macarronada é o termo que algumas pessoas utilizam para qualificar essa prática de incluir programação nas páginas JSP. Quando pensamos numa macarronada temos aquela visão de tudo misturado, enrolado um no outro sem saber onde começa um ou termina o outro. Se você pensar em um sistema que utiliza código na pagina JSP para fazer conexão com um banco de dados é mais ou menos a mesma coisa... o lugar que vc devia utilizar apenas para apresentação, vc colocar código, fica um tanto quanto dificil de um outro programador dê manutenção no seu código.

- Desativar Expression Language
<el-ignored>false</el-ignored> //O padrão é que venha habilitado para desabilitar set true
Não sei em que situação isso seria útil, eu por exemplo utilizo bastante expression Language. Talvez alguns frameworks permitam que utilizem outras formas.

- Determinar a codificação dos arquivos de maneira genérica
<page-encoding>UTF-8</page-encoding>
Imagine toda vez que você criar uma pagina jsp ter que definir a codificação da mesma. Isso é meio chato, essa solução eu achei bastante prática.

- Incluir arquivos estaticamente antes e depois de seus JSPs:
<include-prelude>/antes.jspf</include-prelude>
<include-coda>/depois.jspf</include-coda>

Os velhos includes topo e rodapé. Aquela mesma história... ter que ficar incluindo em todas as páginas. Mais praticidade pra sua vida novamente ;)

Então, para configurar essas opções basta incluir a listagem abaixo no seu arquivo web.xml


<jsp-config>
<jsp-property-group>
<display-name> todos os jsps</display-name>
<description> configuracoes de todos os jsps</description>
<url-pattern> *.jsp</url-pattern>
<scripting-invalid> true</scripting-invalid>
<el-ignored> false</el-ignored>
<page-encoding> UTF-8</page-encoding>
<include-prelude> /antes.jspf</include-prelude>
<include-coda> /depois.jspf</include-coda>
</jsp-property-group>
</jsp-config>

Observem que eu destaquei a parte <url-pattern> pra chamar a atenção que além de permitir que você faça essa configuração para todos os arquivos .jsp, você também pode configurar para um arquivo específico.

Bastante interessante, não acham?

Por agora é só.

Abraços.

FONTE: www.caelum.com.br, curso FJ21

terça-feira, 19 de maio de 2009

Banco do Brasil e Linux 64 Bits

A solução de segurança do Banco do Brasil (Cadastramento de Computadores), que permite que correntistas utilizem serviços de suas contas através da internet, não possibilita que você cadastre o seu computador se o mesmo estiver rodando um S.O. Linux 64 Bits.
Pelo telefone eu não consegui muitos esclarecimentos do que ocorre, mas fui informado que este problema ainda não tem previsão de ser corrigido. A partir de uma máquina rodando Windows 64 Bits ou Mac Os 64 Bits a solução do BB funciona corretamente, o caso é só com o Linux 64 Bits mesmo.
Para quem tem esse problemas, como eu, o que eu recomendo é a instalação do VirtualBox para poder rodar uma máquina virtual com uma versão 32 Bits do Linux e poder usufruir desse conforto.

Dica de linux para iniciantes

A dica é o comando apropos. Esse comando pode te salvar em algum tipo de situação emergencial, principalmente quando você não puder contar com a internet...
Basta digitar no terminal apropos texto_desejado que ele exibe uma lista de comandos existentes e suas descrições, todos os comandos estão relacionados com o texto digitado. Veja o exemplo abaixo:

apropos update
/etc/updatedb.conf (5) [updatedb.conf] - a configuration file for updatedb(8)
catman (8) - create or update the pre-formatted manual pages
chgpasswd (8) - update group passwords in batch mode
chpasswd (8) - update passwords in batch mode
cups-genppdupdate (8) - update CUPS+Gutenprint PPD files
dellBiosUpdate (1) - SMBIOS management/utility program
gtk-update-icon-cache (1) - Icon theme caching utility
install-info (8) - create or update entry in Info dir file
iptables-apply (8) - a safer way to update iptables remotely
libgraphviz4-config-update (1) - maintain libgraphviz's configuration file
mandb (8) - create or update the manual page index caches
newusers (8) - update and create new users in batch
nsupdate (1) - Dynamic DNS update utility
pam-auth-update (8) - manage PAM configuration using packaged profiles
ucf (1) - Update Configuration File: preserve user changes in co...
ucfr (1) - Update Configuration File Registry: associate packages...
unix_update (8) - Helper binary that updates the password of a given user
update-alternatives (8) - maintain symbolic links determining default commands
update-app-install (8) - Cache the data for gnome-app-install

...

Nesse caso eu digitei update como o texto de referência e ele exibiu uma lista de comando relacionados com update e a descrição de cada comando. Para saber como usar cada comando pode-se utilizar o comando man:

man update-app-install

sábado, 16 de maio de 2009

Esse Aqui Eu Recomendo: Audacity


Numa tentativa de ampliar os temas abordados aqui no blog, eu estou lançando agora a seção "Esse Aqui Eu Recomendo". Essa nova seção será destinada a falar sobre softwares opensources que são usados porque são bons e não só porque são livres...
Para abrir com chave de ouro essa seção eu trago o Audacity. Esse é sem dúvida o melhor programa opensource para gravação de áudio multipista.
Isso quem diz não sou eu, o Audacity ganhou o prêmio de melhor editor de áudio do site BestCovery.
Sem querer me promover, mas já promovendo, eu uso o audacity para gravações caseiras de algumas músicas e posso garantir que além de tudo ele é um software bem intuitivo. Baixe aqui um arquivo mp3 de teste com o audacity que eu fiz a pouco tempo atraz. Todas as pistas foram gravadas direto no Audacity e eu usei a captura de áudio padrão do meu notebook.
Além de tudo isso que eu já falei sobre o danado, ele ainda é, como todo software opensource que se preza, multiplataforma e eu já utilizei ele no Windows, Linux (Ubuntu) e Mac OS.

Nesta página você encontra uma referência completa das funcionalidades do Audacity.
Este post não é um tutorial, mas isso não impediu que eu reunisse alguns tutoriais interessantes do audacity para vocês:
-> Tutorial da página do Estúdio Livre.
-> Conjunto de links com vídeos sobre o audacity da página Cifras.

Isso é tudo por hora pessoal, espero que gostem da nova seção do blog e conto com a colaboração de vocês para saber o que estão achando e sugestões de softwares que vocês recomendam...