Skip to content

Silveira Neto Posts

International Free Software Forum 2008

Every year in Porto Alegre, Brazil, is placed the biggest free software event in the world. Is the International Forum on Free Software, FISL. This year the event counted with 21 countries, 257 presentations and more than 7 thousands hackers, students, developers and entrepreneurs together sharing knowledge and making friends.

FISL 2008 Theater

Just a few hours after NetBeans in Fortaleza. I was flying to a long trip to Porto Alegre (almost a entire day) to join in three events, the FISL 9.0 itself and also OpenSolaris Day Porto Alegre and Javali 2008.

Solaris Express and Coffee express
I like my coffee like my Solaris, Express. 😛 Installing a newer version during a free time in the airport.

At OpenSolaris Day I presented High Performance Computing and OpenSolaris showing an introduction about parallel computing concepts and a little bit about how to take advantage of OpenSolaris for HPC, using tools like ZFS and Dtrace for OpenMPI. Was a good presentation and I got good questions.

Audience

Me on OpenSolaris Day

Me on OpenSolaris Day

After the OpenSolaris Day/Javali 2008 we all had a pizza party. I was really sick during my presentation, I’m not familiar with temperatures beyond 25° and that day was 8°.

Pizza party

Some Sun Campus Ambassadors

The presentation I prepared for FISL was “NetBeans: Beyond Java” showing a little bit how you can use NetBeans to develop using Ruby, C, C++ and others languages. I’d like to show that NetBeans is more than a Java IDE. I showed more about the Ruby and Ruby and Rails integration.

Some photos:

NetBeans on FISL

NetBeans on FISL

NetBeans at FISL

My second presentation on FISL was about JavaFX. This presentation was not really planned and I have just a couple of days to organize it. Fortunately I contacted the JavaFX community from openjfx project and immediately I got a lot of help to build some material. A very sincerely and special thanks for James L. Weaver who helped me immediately a lot. Thanks too to the Planet JFX community and their material.

JavaFX on FISL

JavaFX on FISL

JavaFX on FISL

Was really a good demo. I was more relaxed than in my Netbeans presentation and also I got a excellent feedback.

More photos:

OpenSolaris User Group

OLPC XO

OpenSolaris
Thirtankar Das talked about project Indiana.

Man and child using their laptops

Rafael Vanoni talking about OpenSolaris Kernel
Rafael Vanoni talking about OpenSolaris kernel scheduling.

Roger Brinkley
Roger Brinkley talking about PhoneME.

high 5

Fracois Orsini, Silveira Neto and Ted Goddard
Fracois Orsini, me and Ted Goddard.

Gregg Sporar
Gregg Sporar on Java memory leaks.

Raghavan
Raghavan “Rags” Srinivas on Java runtime.

Louis Suarez-Potts and Vitorio. Furusho
Louis Suarez-Potts and Vitorio Y. Furusho talking. See also this excellent interview with Louis.

Ray Gans
Ray Gans on OpenJDK.

Rich Sands on OpenJDK
Rich Sands also on OpenJDK.

Meet Sun SPOT
Gary Thompson showing a Sun SPOT vehicle.

Rafael David Tinoco
Rafael David Tinoco on UltraSparc and OpenSparc.

Campus Party on FISL
Sérgio Amadeu da Silveira, Roberto Andrade e Marcelo D’Elia Branco in a informal retrospective about Campus Party.

Marge
Lucas Bortolaso Torri and Bruno Cavaler Ghisi talking about Marge Framework.

Rich Sands, me and Eduardo Lima
Rich Sands, me and Eduardo Lima

Be at FISL was a dream for me for a long time and finally I could achieve this year, and more specially participating as speaker. In the other hand, I spent lot of time finishing and preparing my demos and could not completely enjoy the event itself, but was a really good event, I meet a lot of people I only knew by mails lists and also meet a lot of people from Sun’s staff.

Porto Alegre

Porto Alegre

Dinner

Porto Alegre is also a very beautiful and well preserved city though I had almost no time to see it. And if during the daytime I almost don’t ate, during the night I went to very good restaurants and churrascarias. I went back to home some kilos fatter. 😛

  • ps.: I took hundreds of photos. There a set of them in my Flickr.
  • ps. 2: I tried to put the name of all who appeared in my photos. If I did a mistake, let me know, please.
  • ps. 3: I had a problem with my file system and I lose those slides I presented in FISL. 🙁 The only available is High Performance Computing and OpenSolaris.

Terminal with colors in OpenSolaris

As the earlies versions of OpenSolaris, my terminal is without colors. That’s a little annoying. As the default user uses Bash you can configure your Bash options in the file ~/.bashrc. Insert in the last lines of your .bashrc file:

alias ls=’ls –color=auto’

Save, close and open your terminal (or just type source ~/.bashrc).

OpenSolaris 2008.5

Como era previsto, o dia hoje começou cheio de novidades.

Os portais OpenSolaris.org e OpenSolaris.com ganharam novas roupagens mais voltadas para o público final. A distância entre entrar no site, conhecer um pouco sobre o OpenSolaris e baixar uma isso diminuiu consideravelmente. Finalmente podemos chegamos ao ponto que o Ian Murdock tocou no seu clássico post “Where do I download OpenSolaris?”. Agora nós podemos simplesmente dizer, clique aqui!


Nova cara do OpenSolaris.org


e a nova cara do OpenSolaris.com

E não é só o site do OpenSolaris que mudou. Também acaba de ser lançado o OpenSolaris 2008.5 ou para os mais íntimos, Projeto Indiana. A intenção do projeto era exatamente essa, criar uma distribuição mais amigável e voltada para os usuários finais. Assim mesmo um usuário de estações de trabalho poderá ter os benefícios de um sistema de arquivo como o ZFS ou uma ferramenta de tracing como o Dtrace. Além disso de ter todos os benefícios da userland GNU.

A partir de agora quando nos referirmos a OpenSolaris, estaremos nos referindo também a distribuição OpenSolaris e não somente ao kernel OpenSolaris.


Novo tema do gerenciador de boot grub que vem com o OpenSolaris

A instalação também ficou muito mais fácil graças ao Projeto Caiman que proveu um dos melhores instaladores que eu já vi. Em uma única ferramenta em estilo next-next você tem todas as ferramentas para instalar o OpenSolaris, inclusive um particionador embutido.


OpenSolaris Package Manager

O Image Packaging System também está disponível e agora integrado com o Package Manager inclusive com suporte a repositórios. Você ainda pode usar as linhas de comando comandos pkg install <pacote> e pkg unistall <pacote>. A esse screencast mostrando como usar o Package Manager e se você é familiarizado com o apt-get há essa tabela comparativa entre o pkg e o apt-get. Uma coisa interessante é que há uma integração entre o IPS e o sistema de arquivos ZFS possibilitando voltar para um estado anterior do sistema antes de instalar um pacote.

O repositório padrão no momento é o pkg.opensolaris.org que nesse momento tem poucos pacotes, menos de 5 mil. Você pode instalar adicionalmente outros repositórios como o sunfreeware.com, abra um terminal como root:

pkg set-authority -O http://pkg.sunfreeware.com:9000 sunfreeware.com

Você pode ver seus repositórios com o comando:

pkg authority

Para mais informações dê uma olhada no documento Getting Started with OpenSolaris 2008.5. No Brasil e no muno estarão ocorrendo nos próximos dias installfests, eventos, palestras e demostrações sobre essa nova distribuição. Informe-se onde ocorrerá o evento na sua cidade.

E é claro, baixe e experimente.

Ou se você preferir, também via bittorrent.

Acesso aos Descontos na Certificação Sun pelo SAI

O SAI (Sun Academic Initiative) é uma parceria entre a Sun Microsystems e instituições de educação e pesquisa. O programa oferece várias vantagens como descontos na compra de voucher para certificações e acesso a cursos do Sun Learning Connection.

Se sua instituição ainda não está cadastrada, fale com algum professor, coordenador ou chefe de departamento e mostre para ele o site do Sun Academic Initiative. O cadastro é feito através desse site. Se você tiver dúvidas sobre como preencher o formulário, você pode entrar em contato comigo.

Esse é um tutorial (não oficial) mostrando como comprar o voucher. Para segui-lo é necessário que sua instituição já esteja cadastrada no SAI.

Passo 1: logue-se no Sun Learning Connection

  • Entre em http://learningconnection.sun.com/.
  • Opcionalmente você pode ter acesso a interface em português clique na palavra português na coluna direita ao lado do formulário de login.
  • Logue-se usando seu login e senha do Sun Learning Connection.
  • Se você ainda não tem uma conta do site, você vai precisar do SAI-Company Name e ID da sua instituição educacional cadastrada para fazer sua própria conta.

Passo 2: vá na seção Referência

  • Depois de logado, clique no ícone com a legenda Referência, canto superior direito da tela.
  • Se sua interface estiver em inglês é o ícone com a legenda “Reference”.

Passo 3: clique em SAI Members Offers

  • Dentro da seção referência estão vários artigos. Clique no artigo de título SAI Members Offers.
  • A partir de aqui o conteúdo está em inglês, independendo da escolha da lingua da sua interface.

Passo 4: clique em View | Certification test vouchers

  • Clique em View | Certification test vouchers.

  • Uma janela pop-up aparecerá. Ela pedirá seu nome de usuário (username) e uma senha (password). Use o nome de usuário sun e a senha equals java. A senha é com espaço e tudo.

Passo 5: preencha o formulário

  • Essa é a nova ferramenta online para geração de desconto de voucher do SAI.
  • Preencha todo o formulário. Você também vai precisar do SAI-Company Name e do SAI-Company ID que você quando criou seu usuário no Sun Learning Connection. Quando completar clique em Submit.
  • As certificações disponíveis são a SCJA, SCJP, SCSA e SCNA.
  • O sistema vai gerar para você uma página de voucher com seu nome e instituição. Você deve entrar em contato com o provedor de exames (Prometric) e lhes entragar o número do voucher e o número do exame e marcar a data e horário da sua prova. Você terá que pagar o valor não descontado do exame.

Java key listening example

This post continues a serie of posts I’m writing about 2D game development in Java.
A simple example of an JPanel that implements KeyListener (and a little trick) to handle KeyEvents to move a white square.

Java KeyListening Example

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class KeyPanel extends JPanel implements KeyListener{
    private int x=50,y=50;
    public KeyPanel() {
        JTextField textfield = new JTextField();
        textfield.addKeyListener(this);
        add(textfield);
        textfield.setPreferredSize(new Dimension(0,0));
    }

    public void keyTyped(KeyEvent e) {}

    public void keyReleased(KeyEvent e) {}

    public void keyPressed(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_LEFT)
            x-=5;
        if (e.getKeyCode() == KeyEvent.VK_RIGHT)
            x+=5;
        if (e.getKeyCode() == KeyEvent.VK_DOWN)
            y+=5;
        if (e.getKeyCode() == KeyEvent.VK_UP)
            y-=5;
        this.repaint();
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.black);
        g.fillRect(0, 0, 500, 500);
        g.setColor(Color.white);
        g.fillRect(x, y, 50, 50);
    }
}

Download the complete NetBeans source project files: KeyTest.tar.bz2.

Simple Java Tileset Example

Tilesets are a common technique in game development to create all kinds of tile-based games (from strategy to RPG games).

Here’s a example of simple 2D isometric square tilesets. I decided to use 32×32 pixels tiles and store 10 tiles per row in a single image:

I created a class called public class JGameCanvas that extends from JPanel from swing:

package game;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JPanel;

enum Tile {
GRASS, GRASS_STONE, GRASS_BAGS, T3, T4, T5, T6, T7, T8, T9,
TREE, TREE_CHOMP, TREE_DEAD, T13, T14, T15, T16, T17, T18, T19,
ROAD_H, ROAD_V, ROAD_HV_DOWN, ROAD_HV_UP, ROAD_VH_RIGHT, ROAD_VH_LEFT, ROAD_CROSS, T27, T28, T29,
WALL, WALL_POSTER, WALL_END_RIGHT, WALL_END_LEFT, T34, T35, T36, T37, T38, T39,
T40, T41, T42, T43, T44, T45, T46, T47, T48, T49,
NEWS, T51,      RES_1, RES_2, BUSS_1, BUSS_2, HOSP_1, HOSP_2, MARK_1, MARK_2,
PIZZ_1, PIZZ_2, RES_3, RES_4, BUSS_3, BUSS_4, HOSP_3, HOSP_4, MARK_3, MARK_4,
PIZZ_3, PIZZ_4, RES_5, RES_6, BUSS_5, BUSS_6, HOSP_5, HOSP_6, MARK_5, MARK_6
}

public class JGameCanvas extends JPanel{
    private static final int tW = 32; // tile width
    private static final int tH = 32; // tile height
    private static final Tile map[][] =
    {{Tile.TREE,Tile.TREE, Tile.TREE, Tile.ROAD_V, Tile.GRASS, Tile.TREE, Tile.TREE_DEAD, Tile.GRASS_STONE, Tile.TREE, Tile.TREE},
     {Tile.WALL, Tile.WALL_POSTER, Tile.WALL_END_RIGHT , Tile.ROAD_V, Tile.WALL_END_LEFT, Tile.WALL, Tile.WALL_END_RIGHT, Tile.TREE_CHOMP, Tile.GRASS_STONE, Tile.GRASS_STONE},
     {Tile.GRASS,Tile.GRASS, Tile.GRASS_STONE, Tile.ROAD_V, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS},
     {Tile.PIZZ_1,Tile.PIZZ_2, Tile.GRASS, Tile.ROAD_V, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS},
     {Tile.PIZZ_3,Tile.PIZZ_4, Tile.GRASS, Tile.ROAD_V, Tile.GRASS, Tile.GRASS, Tile.MARK_1, Tile.MARK_2, Tile.HOSP_1, Tile.HOSP_2},
     {Tile.ROAD_H,Tile.ROAD_H, Tile.ROAD_H, Tile.ROAD_VH_LEFT, Tile.TREE, Tile.TREE_DEAD, Tile.MARK_3, Tile.MARK_4, Tile.HOSP_3, Tile.HOSP_4},
     {Tile.GRASS,Tile.BUSS_1, Tile.BUSS_2, Tile.ROAD_V, Tile.TREE, Tile.NEWS, Tile.MARK_5, Tile.MARK_6, Tile.HOSP_5, Tile.HOSP_6},
     {Tile.GRASS,Tile.BUSS_3, Tile.BUSS_4, Tile.ROAD_VH_RIGHT, Tile.ROAD_H, Tile.ROAD_H, Tile.ROAD_H, Tile.ROAD_H, Tile.ROAD_H, Tile.ROAD_H},
     {Tile.GRASS,Tile.BUSS_5, Tile.BUSS_6, Tile.ROAD_V, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS},
     {Tile.GRASS,Tile.GRASS, Tile.GRASS, Tile.ROAD_V, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS, Tile.GRASS}
    };

    private Image tileset;

    public JGameCanvas() {
        tileset = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tileset.png"));
    }

    @Override
    protected void paintComponent(Graphics g) {
        g.setColor(Color.black);
        g.fillRect(0, 0, getWidth(), getHeight());

        for(int i=0;i<10;i++)
            for(int j=0;j<10;j++)
                drawTile(g, map[j][i], i*tW,j*tH);
    }

    protected void drawTile(Graphics g, Tile t, int x, int y){
        // map Tile from the tileset
        int mx = t.ordinal()%10;
        int my = t.ordinal()/10;
        g.drawImage(tileset, x, y, x+tW, y+tH,
                mx*tW, my*tH,  mx*tW+tW, my*tH+tH, this);
    }
}

Program running:

Those graphics I created for the game Batalhão and are under Creative Commons Attribution Share Alike 3.0 license. The source code is under GPL license, download the NetBeans project with sources: tileset.tar.bz2.

NetBeans Day Fortaleza with Gregg Sporar

Gregg Sporar and CEJUG

Those days Gregg Sporar, NetBeans enthusiast working at Sun Microsystems was here in Brazil and went to our city Fortaleza to speak in our NetBeans Day Fortaleza. We had only a couple of days to prepare everything but is always good work under such pressure. 🙂

Me at the airport

Me and my friend (Cassiano Carvalho) could toke care of him. First we got Gregg at our international airport, Pinto Martins from a flight from Recife. After that we went to a typical food dinner at Coco Bambu where’s Gregg could taste our tapioca and figure why our local JUG (CEJUG) event is called Tapioca with Coffee.

Gregg tasting Tapioca

After that we went to the hotel but we did not have realized that that day was the birthday of our city Fortaleza and the birthday party was a public concert at beach of one of most famous artist in Brazil, Roberto Carlos.

Roberto Carlos in the early years
Roberto Carlos in the early years… 😛

For those who are not Brazilians, To have an idea what Roberto Carlos is, just imagine (in a smaller proportion of course) some kind of Brazilian Elvis Presley. When we quited the restaurant the show was just finished, we had a huge crowd walking back for everywhere, streets blocked, mess and traffic extremely slow. We spend about two hour on this. We decided to park the car, get Gregg’s luggage and go walking the hotel. Luckily the rain don’t caught us.

Rainy Day

In the morning was raining cats and dogs at Fortaleza, what is very uncommon.

Gregg cheking out

I picked Gregg at the hotel to the campus so we can meet the NPD (acronym in Portuguese for Data Processing Core) building, the Internet backbone of the entire state and where some projects are using NetBeans. Gregg also met our CS department, our labs and our cluster.

While that we prepared the auditorium and some last details, test microphones and projector.

P4140007 P4140006

People started to get and we got their names and mails for event certifications. I opened the event talking about NetBeans, CEJUG projects and opportunities for the students.

P4140019

P4140024

People from TV Software Livre (Free Software Television) was there too to record and transmit the event.

P4140017 P4140025

The first Gregg’s talk was about NetBeans and some new features from the last version of NetBeans and some new features for the version 6.1.

P4140045

The second was about Memory Leaks in Java and a method for detecting those. Very interesting.

Gregg Sporar

NetBeans Day Fortaleza

NetBeans Day Fortaleza

NetBeans Day NetBeans Day Fortaleza

Gregg Sporar

After Gregg quited to fly to Brasilia I did a presentation on NetBeans 6 and 6.1 Beta news features. You can download Gregg’s slides here and here, my slides here.The recorded video is hosted at Google Video. You can see more photos in this album:

Gregg Sporar

Gregg, thank you very much and hope you liked your quick visit to Fortaleza. 😉 Thanks also CEJUG and all guys that made this event possible.