Archive

Author Archive

Instale Oracle JDK7 no openSUSE

February 21st, 2013 No comments

Realize o download a partir deste local: Java SE Development Kit 7 Downloads, em um diretório de sua escolha – escolhi: /Softwares_usados/Tools/java/jdk/ .

Depois como super usuário (root) utilize a Ferramente de Gerencimanto de Software – Zypper - para instalar o pacote (arquivo RPM):

gilberto.andrade@A37710:~$ su -
Senha:
A37710:~ # cd /dados/D/Softwares_usados/Tools/java/jdk/
A37710:/dados/D/Softwares_usados/Tools/java/jdk # ll
total 439208
-rw-r----- 1 gilberto.andrade users   8405307 Feb 11 20:14 javafx-2_2_7-apidocs.zip
-rw-r--r-- 1 gilberto.andrade users  54426218 Oct 11 15:12 javafx_scenebuilder-1_1-beta-linux-x64.tar.gz
-rw-r--r-- 1 gilberto.andrade users 216263278 Jun 13  2012 javatutorials.zip
-rw-r----- 1 gilberto.andrade users  60768483 Feb 11 18:10 jdk-7u15-apidocs.zip
-rw-r----- 1 gilberto.andrade users 109860709 Feb 16 04:08 jdk-7u15-linux-x64.rpm
 
A37710:/dados/D/Softwares_usados/Tools/java/jdk # zypper install jdk-7u15-linux-x64.rpm

Vamos “avisar” o mecanismo do sistema que é responsável por estes serviços – update-alternatives- que existe uma nova versão do jdk instalada. O diretório (melhor dizendo, link) /usr/java/latest representa a versão mais recente instalada e irá apontar para última e mais nova versão:

A37710:/usr/java # ll
total 12
lrwxrwxrwx 1 root root   16 Feb 15 16:09 default -> /usr/java/latest
drwxr-xr-x 4 root root 4096 Feb 15 15:13 jdk1.7.0_07
drwxr-xr-x 3 root root 4096 Feb 21 14:36 jdk1.7.0_13
drwxr-xr-x 8 root root 4096 Feb 21 14:36 jdk1.7.0_15
lrwxrwxrwx 1 root root   21 Feb 21 14:36 latest -> /usr/java/jdk1.7.0_15

A partir do diretório latest/bin e latest/jre/bin realize as seguintes modificações:

A37710:/usr/java # cd latest/bin/
A37710:/usr/java/latest/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/bin # cd ..
A37710:/usr/java/latest # cd jre/bin/
A37710:/usr/java/latest/jre/bin # for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done
A37710:/usr/java/latest/jre/bin #

Por fim, atualizaremos o plugin java – javaplugin.so - para os navegadores instalados no sistema:

update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/latest/jre/lib/amd64/libnpjp2.so 20000

Olhe com atenção pois utilizamos como referência para atualizar o update-alternatives o caminho base /usr/java/latest.
Por quê? Você sabe explicar?

Categories: Geral, Java, Linux Tags: ,

openSUSE – Repositórios adicionais

October 9th, 2012 3 comments

Vira e mexe (entre uma instalação e outra, ou um upgrade e outro) preciso adicionar alguns repositórios(repository) ao Yast para aplicativos que costumo utilizar. Registro logo abaixo os que não podem faltar:

Nome Como adicionar
VirtualBox zypper addrepo -r http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4/virtualbox.repo
Fonts zypper addrepo -r http://download.opensuse.org/repositories/M17N:/fonts/openSUSE_12.2/M17N:fonts.repo
Google Chrome zypper ar -f -n Google-Chrome http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome
Restricted formats zypper addrepo -r http://packman.inode.at/suse/12.2/packman.repo
zypper addrepo -r http://www.opensuse-guide.org/repo/12.2/libdvdcss.repo

E aí, quais você mais usa?

Como baixar um site web inteiro – wget

September 20th, 2012 No comments

Na verdade, a pergunta correta seria: como baixar todas as páginas – e seus recursos (css, javascript, imagem, etc) – de um site web?
Após uma breve pesquisa, fiquei surpreso ao saber que possuía a ferramenta adequada para essa tarefa, mas ao mesmo tempo decepcionado comigo mesmo por se tratar de um utilitário que uso a um bom tempo – aquela velha história, compra-se um produto mas não se importa em usar todo o seu potencial.
O Wget é uma ferramenta de linha de comando bem clássica para este tipo de tarefa. Ele vem com a maioria dos sistemas Unix/Linux, há versão para o Windows também (mais recente está disponível aqui).
Assim temos:

wget -r --no-parent http://site.com/pdfs/

Aqui mais dois ótimos sites como exemplo:

Categories: Geral, Linux, Unix, Windows Tags: , ,

Java – Boas referências online

July 13th, 2012 No comments

Tenho alguns livros sobre Java, mas com as mudanças que a linguagem sofreu nos três últimos anos tenho por mim que minhas referências estão desatualizadas. Meu grande interesse é entender melhor os detalhes que muitos programadores (vindos de outra linguagem ou não) ignoram – seja por desconhecimento, seja por desinteresse, pois o arcabouço de APIs Java é muito amplo.

Enquanto realizo minha tarefa diária – implementando ou corrigindo código – costumo manter ao meu lado algumas referências e hoje vou postar as que costumo consultar via internet. Vamos a elas:

Java Concorrente na Prática – crítica

June 1st, 2012 3 comments

Para um livro já consagrado, uma boa tradução seria o mínimo. Mas lamento relatar que o profissional escolhido para tal tarefa deixou muito a desejar. Quem fez a revisão editorial do livro – se é que o fez – , também, não realizou um bom trabalho. É nítido, a partir do primeiro capítulo, o descaso com o leitor. Um exemplo explícito disto é você ver em várias partes do livro a operação de copiar e colar, ou melhor de substituição de texto: o tradutor ou editor, substituiu a sigla GUI por Grafical User Interface onde pode, assim, onde houvesse seGUIR, conseGUIR, etc. encontramos conseGUI(Grafical User Interface). Legal né!

Bom, vou parar por aqui. Não vou nem mencionar a coerência textual, caso contrário a editora teria que me ressarcir por essa “obra”.


É um PostgreSQL! Não, é um MSSql! Não, é um DB2! [h2 modo compatibilidade]

May 18th, 2012 No comments

Calma pessoal, é apenas o banco H2 em modo compatibilidade! Imagine
que você acabou levando trabalho pra casa (Novidade!!!) mas se
esqueceu que em casa vc não possui o ambiente – banco de dados –
desenvolvimento semelhante ao do trabalho. Em meu caso um servidor de
banco de dados PostgreSQL.

O que isso tem haver com o banco de dados H2? Diferentemente de um
Postgresql, um MS Sql ou Oracle o H2 é um banco de dados leve e de
fácil instalação, podendo até executá-lo sem a necessidade de uma
instalação propriamente dita.

Mas como isso funciona?

Há dua formas de se beneficiar desta característia. A primeira é
utilizar o driver jdbc do próprio H2, utilizando o parâmetro MODE na
URL de conexão:

jdbc:h2:file:data/teste;create=true;MODE=PostgreSQL;DB_CLOSE_DELAY=-1

Assim você poderia recriar as estruturas do banco por script ou
ativando a criação das entidades no provedor de persistência – caso
utilize JPA. Veja que as estruturas – tabelas, views, sequências, etc
- não teriam que ser ajustadas por estar utilizando o H2. O banco H2
entende o dialeto, por assim dizer, do banco a ser “emulado” pelo
parâmetro MODE.

A segunda maneira, por sinal mais interessante, é não fazer nada!
Como assim? Você provavelmente se questiona! É verdade, você não
mexe em nada do seu projeto – que é um banco específico, no meu caso o
PostgreSQL. Você continua utlizando o driver, a URL do seu banco e
deixa o H2 fazer o resto. Vamos ver?
Suponha que sua forma de conexão seja a seguinte:

<dependencies>
	<dependency>
		<groupId>postgresql</groupId>
		<artifactId>postgresql</artifactId>
		<version>8.1-408.jdbc3</version>
	</dependency>
</dependencies>
<properties>
	<!-- Default Database Connection-->
	<jdbc.url>jdbc:postgresql://localhost:5435/teste</jdbc.url>
	<jdbc.driverClassName>org.postgresql.Driver</jdbc.driverClassName>
	<jdbc.username>teste</jdbc.username>
	<jdbc.password>teste</jdbc.password>
</properties>

Para funcionar precisamos ter um servidor PostreSQL rodando
localmente, certo? Pois bem, vamos iniciar e estabelecer um servidor
PostgreSQL através do H2. Para facilitar as coisas, vamos criar um
profile
que nos auxiliará nesta tarefa:

<profiles>
<profile>
	<id>h2</id>
	<activation>
		<activeByDefault>false</activeByDefault>
	</activation>
	<dependencies>
		<dependency>
			<groupId>postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>8.1-408.jdbc3</version>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.3.166</version>
		</dependency>
	</dependencies>
</profile>
</profiles>

Agora a “grande sacada” do H2, abra dois terminais: um para rodar o
servidor e a outra para você trabalhar normalmente com o maven. Em uma
delas iremos iniciar o servidor:

mvn -P h2 exec:java -Dexec.mainClass="org.h2.tools.Server" -Dexec.args="-properties data -baseDir data"

Após este comando, você terá a sua disposição uma interface – via
navegador – a qual lhe permitirá escolher em qual MODE rodar o
servidor.

H2 Admin Interface


Ao conectar àquela configuração definida incialmente, teremos outra
interface de administração. Aqui poderemos administrar nosso “banco
PostgreSQL”

H2 Admin Console


Acesse este banco por sua aplicação ou por qualquer outro cliente
jdbc – por exemplo o squirrel. Lembre-se você estará acessando um
banco PostgreSQL!

Categories: Database, Geral, Java Tags: , ,

Como o Linux é construído – Vídeo

April 3rd, 2012 No comments

Precisa comentar?

Alterne entre versões Java facilmente [update-alternatives] parte 2

March 26th, 2012 No comments

A um tempo atrás escrevi sobre o utilitário de sistema update-alternatives e mostrei como alternar entre versões do Java usando o mesmo. Naquele mesmo post mostrei que o Java já havia sido instalado e configurado pelo sistema de gerenciamento de pacotes pre-definido – Yast. Como já é de conhecimento de alguns a Oracle mudou a forma de licenciamento do Java e com isso a maioria das distribuições – senão todas – optaram por retirar o Java distribuído pela Oracle de seus repositórios. Com isso, se você precisar instalar a versão Java da Oracle terá que fazê-la manualmente.

Antes de começar, quero notificar aos usuários do navegador Chromium que como eles tive dificuldades, no início, para fazê-lo funcionar com Java ao acessar o site do Banco do Brasil. Para confirmar este problema é só fazer uma pesquisa no Google usando a seguinte sentença: chromium banco do brasil. Então para a felicidade geral nação “chromiumana”, relato que esta maneira manual aqui demonstrada soluciona este pequeno problema.

Então vamos lá!
Os passos são esses:

  • Baixe a versão RPM do site da Oracle – baixei a versão jre-7u3-linux-i586.rpm;
  • Instale o jre com yast2, zypper, ou com um duplo clique no rpm pelo dolphin ou nautilus:
    SUGEP265338:~ # zypper in jre-7u3-linux-i586.rpm
  • Agora precisamos adicionar esta instalação às alternativas já instaladas, de forma a disponibilizá-la como uma opção:
    SUGEP265338:~ # update-alternatives --install /usr/bin/java java /usr/java/jre1.7.0_03/bin/java 40
  • Faremos o mesmo para o plugin java. Esta opção é muito importante pois estabelece qual versão Java para navegação web estaremos usando:
    SUGEP265338:~ # update-alternatives --install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so 40
  • Bom, agora vem a parte mais fácil que é, como escrevi no primeiro post, alternar entre tais versões:
    SUGEP265338:~ # update-alternatives --config java
    There are 2 choices for the alternative java (providing /usr/bin/java).
     
      Selection    Path                                     Priority   Status
    ------------------------------------------------------------
    * 0            /usr/lib/jvm/jre-1.6.0-openjdk/bin/java   17105     auto mode
      1            /usr/java/jre1.7.0_03/bin/java            40        manual mode
      2            /usr/lib/jvm/jre-1.6.0-openjdk/bin/java   17105     manual mode
     
    Press enter to keep the current choice[*], or type selection number: 1
    update-alternatives: using /usr/java/jre1.7.0_03/bin/java to provide /usr/bin/java (java) in manual mode.
    SUGEP265338:~ #
  • E finalmente, o mais importante, o plugin para os navegadores web:
    SUGEP265338:~ # update-alternatives --config javaplugin
    There are 2 choices for the alternative javaplugin (providing /usr/lib/browser-plugins/javaplugin.so).
     
      Selection    Path                                        Priority   Status
    ------------------------------------------------------------
    * 0            /usr/lib/IcedTeaPlugin.so                    17106     auto mode
      1            /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so   40        manual mode
      2            /usr/lib/IcedTeaPlugin.so                    17106     manual mode
     
    Press enter to keep the current choice[*], or type selection number: 1
    update-alternatives: using /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so to provide /usr/lib/browser-plugins/javaplugin.so (javaplugin) in manual mode.
    SUGEP265338:~ #

Pronto! Feche o navegador e faça um teste. Até a próxima!

Atualização(12/07/2012): Hoje pela manhã, procurando por mudanças que torne o script update-alternatives compatível com o jdk 1.7, me deparei com uma forma bem mais simples de instalar manualmente o jdk Oracle. Veja:

 
zypper install jdk-7-linux-x64.rpm
cd /usr/java/jdk1.7.0/bin
for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done

Agora o javaplugin para o navegador:

update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/jdk1.7.0/jre/lib/amd64/libnpjp2.so 20000

Usei a versão 64bits mas o procedimento vale também para 32bits.

Consumismo Infantil, um problema de todos

March 19th, 2012 No comments

As crianças são um alvo importante, não apenas porque escolhem o que seus pais compram e são tratadas como consumidores mirins, mas também porque impactadas desde muito jovens tendem a ser mais fiéis a marcas e ao próprio hábito consumista que lhes é praticamente imposto.

Projeto Criança e Consumo – Instituto Alana


Publicidade Infantil Não

Gnome 3 – diálogo modal move toda a aplicação

March 2nd, 2012 No comments

É, finalmente consegui um tempo para postar algo aqui no blog. Ultimamente (nos dois últimos meses) estive ocupado trabalhando na conversão de alguns projetos java para web: usavam Ant e agora, este trabalho, usam Maven. Neste período, como vocês bem sabem, fiz a atualização (na verdade uma nova instalação) do openSUSE. Estava com a versão 11.3 e com o recente lançamento da versão 12.1, não resisti – ansioso por usar o novo Gnome 3.

A mudança foi um pouco impactante mais pro lado positivo, diferente de outras experiências que tenho ouvido e lido a respeito. Bem, espero ajudar os novos adeptos a este ambiente gráfico por aqui: postando dicas e links para solucionar eventuais embaraços por assim dizer nesta jornada de aprendizado.
Vamos começar com um link bem útil: GnomeShell/CheatSheet .

Agora algo que atrapalha um pouco: toda vez que precisamos abrir uma janela modal, tipo “Open File”, “Print”, esta mesma janela modal é anexada (colada mesmo!) à janela principal da aplicação(Evince, Firefox, NetBeans, Empathy, etc) tornando-a uma só. Isso é contra produtivo pois em algumas situações precisamos fazer um “copy and paste” de informações na janela principal da aplicação – ocorre muito com o Evince e com NetBeans no meu caso.
No GNOME 3, o comportamento padrão de diálogo modal é este anexar-se à janela principal da aplicação, mas este comportamento pode ser customizado, veja:

gconftool-2 --set /desktop/gnome/shell/windows/attach_modal_dialogs false --type bool

Para desabilitar. E o contrário:

gconftool-2 --set /desktop/gnome/shell/windows/attach_modal_dialogs true --type bool

Referência:The GNOME Shell Blog – The modal windows behavior

Categories: Geral Tags: