Nov 12 2009

Go, a linguagem do Google…


Pessoalmente não gosto de novas linguagens de programação. Não gosto de ter muitas opções. Por mim existiriam dias linguagens uma para quem gosta de blocos begin/end e outra pra quem gosta de { }.

package main
import "fmt"

func main() {
  fmt.Printf("Hello, 世界\n")
}

No entanto estou longe de ditar regras no mundo da computação. Ontem o Google, empresa que pretende dominar o mundo, apresentou uma nova linguagem. Go. Assisti à apresentação de uma hora do Go no youtube na noite passada e deixarei aqui minhas primeiras impressões.

Go é uma linguagem experimental que quebra alguns paradigmas. Portanto não planeje a migração do seu sistema para qualquer momento em um futuro próximo. Go é uma linguagem que utiliza-se de uma forte tipagem, então nada de somar laranjas com limões para obter uma variável limonada.

Consegue-se sentir forte influencia de Pascal na sintese da linguagem. Há tempos não atribuia valores a uma variável utilizando :=

Quando digo que Go quebra alguns conceitos é porque ela não é bem uma linguagem orientada à objetos. Go utiliza-se de tipos assim como a estrutura type do pascal. A diferença é que esses tipos podem conter métodos. Em uma analogia simplória à orientação à objetos um tipo seria uma classe.

//tipo em Pascal
type pessoa = record
     nome  : string[40];
     email : string;
end;
type pessoa struct {
   nome string,
   email string }
func (p *pessoa) getNome() string { return p.nome }
//onde
p.getNome();
ou
qualquerObjectoDoTipoPessoa.getNome() é válido

Além disso não há herança, associações entre objetos são feitas através de interfaces.

type minhaInterface interface {
     get() int;
     set(i int);
}

Assim como Java Go utiliza-se de Garbage Collection, não sendo responsabilidade do programador limpar restos de objetos alocados em memória. Go é uma linguagem concorrente, feita para suportar a execução de diversos blocos de código simultaneamente. Suas “Thread” são chamadas de gorotines.

Caso tenha algo a somar nesse post sinta-se livre para comentar.

Comments (3)

Tags: ,

Relacionados



Oct 15 2009

ArrayList em Java e C#


Esse post não tem a mínima intenção de fazer uma análise aprofundada das duas plataformas. Pode ser considerado um brincadeira com ambas as linguagens. Não quero chegar a nenhuma conclusão com este post. A idéia surgiu já que estou empolgado depois que comecei a ler o livro Head First C#.

As regras são as seguintes: Criar uma classe pessoa (Person) tendo apenas o nome como atributo e uma classe pessoas (People) que contendo um ArrayList que agregue pessoas. A classe People deve conter um método para listar todas as pessoas.

Para melhor visualização do problema utilizei uma avançada ferramenta de UML. Veja foto abaixo:

Diagrama UML

Classe Person

//Classe Person em Java
public class Person {

	String name;

	public Person(String name){
		this.setName(name);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}
//classe Person em C#
namespace ConsoleApplication1 {
    class Person {
        private string name;

        public Person(string name) {
            this.setName(name);
        }

        public string getName() {
            return this.name;
        }

        public void setName(string name){
            this.name = name;
        }

    }
}

Classe People

//Classe People em Java
import java.util.ArrayList;
import java.util.List;

public class People {

	List people = new ArrayList();

	public void addPerson(String name){
		Person p = new Person(name);
		people.add(p);
	}

	public void listPeople(){
		for(Person p : people){
			System.out.println(p.getName());
		}
	}
}
//Classe People em C#
using System;
using System.Collections;

namespace ConsoleApplication1 {
    class People {
        ArrayList people = new ArrayList();

        public void addPerson(string name){
            Person p = new Person(name);
            people.Add(p);
        }

        public void listPeople() {
            foreach (Person p in people) {
                Console.WriteLine(p.getName());
            }
        }
    }
}

Classe Main

//Classe Main em Java
public class Main {

	public static void main(String[] args) {
		People p = new People();
		p.addPerson("Rodrigo");
        p.addPerson("José");
        p.addPerson("João");
        p.listPeople();
	}

}
//Classe Main em C#
namespace ConsoleApplication1 {
    class MainClass {
        static void Main(string[] args) {
            People p = new People();
            p.addPerson("Rodrigo");
            p.addPerson("José");
            p.addPerson("João");
            p.listPeople();
            Console.ReadKey();
        }
    }
}

Garanto-lhes que o resultado foi o mesmo em ambas as plataformas. Algo parecido com a imagem abaixo:

Resultado Final

Resultado Final

Comments (1)

Tags: , ,

Relacionados



Sep 10 2009

Álbuns que me marcaram – parte i


Embora nunca tenha tocado algum instrumento, música sempre foi um assunto que fez parte dos meus interesses. Tomei como tarefa selecionar alguns discos que tenham feito parte de alguma fase da minha vida e que hoje ainda exerçam alguma influência em mim ou estejam digitalizados no meu iPod.

Um álbum pra mim é muito mais do que uma compilação de músicas. Acredito em todo o conceito na criação do álbum. Orgulho-me de em toda minha vida nunca ter comprado um cd pirata. Quando coloco às músicas no meu iPod mantenho a ordem das mesmas, adiciono a capa e checo a grafia. Tudo para não perder o conceito do trabalho que a banda produziu.

Ter uma boa coleção de cd’s era algo que realmente me motivava em minha adolescência. Não tenho certeza do quão acessíveis eram os álbuns na época, mas me lembro de ter um número considerável de cd’s.

Quando eu comecei o meu primeiro emprego, na verdade um estágio, ganhava uns quatrocentos
pilas por mês. Todos os meses meu orçamento era dividido da seguinte forma um cd novo, uma ou duas camisetas da quiksilver ou da lost e o que sobrava, ai para as festinhas de final de semana. Cara, eu conseguia ser feliz com muito pouco.

Para tornar a brincadeira mais desafiadoura criei algumas regras. Para que o disco possa estar na lista eu tenho que ter tido o disco fisicamente, mp3 ou aqueles cd’s de amigos que ficaram na minha casa por meses não contam.

Sgt. Pepper's Lonely Hearts Club Band

Sgt. Pepper's Lonely Hearts Club Band

The Beatles, Sgt. Pepper’s Lonely Hearts Club, 1967
Eu tinha menos de dez anos de idade quando meu pai ganhou de um cliente o nosso primeiro cd player. Não lembro exatamente o ano, mas deve ter sido em 1988 ou 1989. Na época poucos títulos estavam disponíveis em cd. Um dos primeiros discos que meu pai comprou foi o Sgt. Pepper’s. Eu não entendia muito o conteúdo do álbum. Para mim era algo totalmente circense. Não sabia o que era um álbum conceitual, para mim eram apenas três ou quatro músicas muito longas em um cd. A música título do álbum, with a little help from my friends e Lucy in the sky with Diamonds eram uma faixa só em minha cabeça. A capa do álbum também me facinava, ficava olhando para ela tendando reconhecer algum rosto e por anos acreditei que o Didi Mocó estava em meio àquele aglomerado de pessoas.

OK Computer

OK Computer

Radiohead, Ok! Computer, 1997
Se todos os adolecentes tornam-se chatos e melancólicos em algum momento, desejo que todos tenham um ábum como o OK Computer para conforta-los, ou bota-los mais para baixo. As primeiras vezes que ouvi esse álbum confesso que não o entendi, mas queria escuta-lo denovo e denovo. Como podia a mistura de guitarras gritantes, efeitos vindos de sintetizador e um vocal que ia do soft ao extreme em segundos ser uma combinação coerente? Mesmo na época não entendendo muito a lingua inglesa a mensagem parecia universal e sabia que muito do que o Thom Yorke cantava estava relacionado com o que sentia. Tem uma amigo meu que uma vez brincou dizendo que se tem um “OK” e um “Computer” só pode ser coisa minha. Confesso que esse foi o único trabalho do Radiohead que conheci a fundo, mas foi suficiente para me marcar.

Sobrevivendo no inferno

Sobrevivendo no inferno

Racionais MC’s, Sobrevivendo no Inferno, 1997
Minhas tendências de “mano” foram reprimidas a muito tempo. Esse foi um albúm que marcou minha vida. Sabia todas as extensas letras de cor. Nunca alguma mensagem que não fazia parte de minha realidade entrou na minha cabeça de forma tão agressiva me fazendo querer entender o universo no qual o grupo estava inserido. Ìnfelizmente as letras bem elaboradas não refletem nas entrevistas do Mano Brown encontradas no Youtube. O intelectual da favela decepciona feio quando fala aos jornalistas com português medilcre e perdendo-se em sua linha de pensamento. Por isso demoram mais de quatro anos para produzirem um álbum.

Sublime

Sublime

Sublime, Sublime, 1996
Quando a fama muldial do Sublime chegou Bradley Nowell, vocalista do grupo já havia falecido de overdose de smack. Eu comprei o álbum na época por que ouvia Santeria na rádio praticamente de hora em hora. Não via por esse single um potencial de um grande álbum. Estava errado! Ainda hoje não passo mais de uma semana sem escutar Sublime. Minhas canções prefiridas do álbum sempre mudam, já foi Ganden grove, Seed e Same in the end. Esta última escuto repetidas vezes no meu iPod. Down in mississippi where the sun beats down from the sky..

Mesmo antes de vir morar na california acreditava que nada poderia ser mais “califa” do que Sublime e sempre que vou passar um domingo na praia essa é a trilha sonora.

Evil Empire

Evil Empire

Rage Against the machine, Evil Empire, 1996
Confesso que comecei a curtir o Rage Against desde o primeiro álbum, mas como nunca comprei esse cd estaria fora das regras da brincadeira. O Evil Empire, esse sim, eu comprei. Devo ter até hoje no meu armário lá em Blumenau. Os Rifs pesados e incrementados me inspiram e aumentam minha ansiedade de uma forma benigna. Costumo escutar esse disco na quando vou à academia ou faço uma caminhada.

Greatest Hits ii

Greatest Hits ii

Queen, Greatest Hits II, 1991
Esse álbum é mais uma influência do meu pai. Que orgulho ter um pai que nos acordava (e a todos do prédio) nos finais de semana com A Kind of Magic a todo volume, enquando a maioria dos pais da idade dele estariam escutando Xitãozinho e Chororó. Até hoje meu pai chama as duplas sertaneja ironicamente de caipiras.

O Queen certamente é a banda que meu pai mais gostou. Não lembro do fato por ser muito novo na época, mas acredito que a vinda do Queen ao Rock in Rio de 1985 deve ter sido o marco inicial dessa paixão. Quando o pai tomava umas cervejas a mais fazia imitações do Freddie Mercury nos churrascos da família. E por esses motivos esse álbum sempre estará na minha cabeça.

Comments (3)

Tags: ,

Relacionados



Sep 01 2009

A arte e a ciência…


Embora tenha há tempos tenha me posicionado a favor da regulamentação das profissões ligadas à informática ocorrida na semana passada, não havia comentado este assunto que deu bastante o que falar em blogs profissionais e acadêmicos.

Não acredito que o ensino superior seja o único caminho para formação bons analistas ou desenvolvedores. Porém certamente essa é a melhor maneira de agregar conhecimento e técnica à carreira.

Existe um estalo ou toque mágico que só nos é perceptível na academia. Esse estalo não vem no momento em que passamos no vestibular ou ao fazer a matrícula na instituição. O que eu chamo de toque mágico é quando lá pelo final do segundo ano de curso começa-se a ver as coisas com outros olhos. De uma hora para outra tudo se encaixa e faz sentido. É preciso ser muito perceptivo para ver isso. Mas passa-se a perceber que cada disciplina do curso está interrelaciona por mais tênue que seja essa ligação.

Infelizmente não são todos que tem essa percepção. Mas esse é o momento em que entende-se como o processo funciona. É o momento em que todos os conceitos passam a fazer sentido.

Embora tenha essa visão romântica da academia descrita acima, não acredito que análise ou desenvolvimento de sistemas seja arte e sim ciência. Muito compara-se desenvolvedores com artistas. Confesso que tenho meus momentos de inspiração enquanto programo, mas não acredito que a inspiração venha de uma veia artística.

Arte é criação. Quando pinta-se um quadro a inspiração utiliza-se das pinceladas do artista para chegar à tela. Uma vez pronta essa tela não é revisada, não existem bugs nem implementações de novas funcionalidades. Imaginem como o artista ficaria ofendido quando o comprador da obra solicitasse que uma arvore fosse retirada ou inserida em uma tela de paisagem.

Desenvolvimento de Sistemas é ciência. Existem técnica, métodos e processos. Estudam-se as melhores práticas de programação e desenvolvimento. O software possui um ciclo de vida que o mantém ativo por muitos anos. E é necessário revisitar o código eliminando bugs e criando novas funcionalidades com uma freqüência bastante grande.

Acredito que autodidatas possam atingir um nível de conhecimento bastante grande, porém dificilmente alcançarão o toque mágico que os fará entender o conceito por trás das coisas.

Comments (2)

Tags: , ,

Relacionados



Aug 14 2009

Votem no Jovem nerd!!!


Galera! Votem no Jovem nerd na categoria melhor blog do VMB 2009. Não sigo nenhum dos indicado à categoria Twitter do ano, portando não tenho opinião formada.

Comments (0)

Tags:

Relacionados



Aug 10 2009

Quando a internet fica boring…


Eu passo no mínimo dez horas do meu dia em frente à um computador. O meu emprego me possibilita escapadas à web sob o argumento de que estou fazendo pesquisas sobre algo relacionado ao trabalho. Nem sempre isso é verdade. Checo o meu Gmail compulsivamente durante todo o dia, mesmo sabendo que a maioria dos meus amigos não utiliza-se desta ferramenta para me contatar, preferem Messenger ou Orkut.

O meu Messenger está sempre no modo “Appear offline” para que eu não seja perturbado durante minhas atividades profissionais. Mas contato pessoas sempre que preciso. O Twitter, esse sim, é o meu maior vício da atualidade. Em dias mais animados faço uma média de cinco à oito updates, em dias regulares limito-me à um ou dois. Mesmo não tendo uma freqüencia grande nos updates, acompanho quase que a cada hora o que a galera do twitter está debatendo ou ainda sigo suas indicações de links e vídeos.

Das redes sociais mais populares sou usuário do Facebook e do Orkut. Categorizo meus amigos da seguinte forma em redes sociais. Amigos gringos ou brasileiros vivem no exterior estão no facebook, o pessoal das antigas, galera de Blumenau e ex-colegas de faculdade estão no Orkut.

Abdiquei do orkut por uns meses, mas morando longe de casa é uma forma boa de manter contato com a família, todos os meus primos e tios estão por lá. Para os meus pais reservo um papo semanal pela webcam. PS: Não tente me adicionar no Facebook se o seu perfil é de usuário de Orkut, ignorarei a sua requisição.

O youtube não chega à ocupar percentual significante do meu tempo. Assisto aos vídeos que me são recomendados e alguns enviados pelo twitter, mas não chego a pesquisar no site atrás de coisas novas. A wikipedia, fonte da sabedoria popular mediana, também tem uma importância fundamental no meu cotidiano. Serve para as mais diversas pesquisas. É muito comum que minhas pesquisas no Google sejam baseadas no template: “<termo> wiki”;

Como se orkut, facebook, gmail, twitter, wikipedia e messenger já não bastasem ainda tem o Google Reader. O reader é o que me mantém atualizado das notícias. Devo dizer que muito mais notícias de tecnologia do que atualidades em geral. Não tenho idéia do que gerou a atual crise do senado brasileiro, embora ao contrário de muitos saiba para que serve a câmara alta. O Reader recheia espaços do meu dia.

Sendo o Brasil quatro horas adiantado com relação à califa. Pouco antes das dez da noite já sinto um enfraquecimento no twitter. Um ou outro perdido, geralmente sob efeito etílico, costuma madrugar e postar updates. Não só no twitter que percebo isso. O a movimentação no Reader é muita baixa e no Gmail é totalmente nula. Vou do twitter ao reader, do Gmail ao Orkut, mas não adianta após as dez a internet é boring pra mim…

Comments (2)

Tags:

Relacionados



Jul 15 2009

Importando arquivo csv no MySQL


//Arquivo CSV
Blumenau,Santa Catarina,
Joinville,Santa Catarina,
Florianopolis,Santa Catarina,
Curitiba,Parana,
Londrina,Parana,
Porto Alegre,Rio Grande do Sul,
Sao Paulo,Sao Paulo,

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hssegue            |
| java               |
| joomla             |
| mark               |
| mysql              |
| rodrigo            |
| test               |
| wikidb             |
+--------------------+
9 rows in set (0.00 sec)

mysql> USE test;
Database changed
--Criando Tabela
mysql> CREATE TABLE import(
    ->   city  varchar(50),
    ->   state varchar(50));
Query OK, 0 rows affected (0.06 sec)

--Inicia Transação
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

--Importa Arquivo
mysql> LOAD DATA LOCAL INFILE 'test.csv'
    -> INTO TABLE import
    -> FIELDS TERMINATED BY ','
    -> LINES TERMINATED BY '\n'
    -> (city, state);
Query OK, 7 rows affected, 7 warnings (0.00 sec)
Records: 7  Deleted: 0  Skipped: 0  Warnings: 7

--Confirmando dados importados
mysql> SELECT city, state
    ->   FROM import;
+---------------+-------------------+
| city          | state             |
+---------------+-------------------+
| Blumenau      | Santa Catarina    |
| Joinville     | Santa Catarina    |
| Florianopolis | Santa Catarina    |
| Curitiba      | Parana            |
| Londrina      | Parana            |
| Porto Alegre  | Rio Grande do Sul |
| Sao Paulo     | Sao Paulo         |
+---------------+-------------------+
7 rows in set (0.00 sec)

--comita transação
mysql> commit;
Query OK, 0 rows affected (0.03 sec)

Comments (1)

Tags:

Relacionados



Jul 07 2009

JStella – emulador de atari em Java…


O JStella é um emulador de Atari desenvolvido em Java e disponível no sourceforge.net. Também é distribuído na forma de Applet.

Para inserir o applet no seu website basta configurar os parâmetros como por exemplo o rom que irá utilizar como no exemplo abaixo:



Your browser doesn't seem to support applets.

Your browser doesn’t seem to support applets.

Comments (1)

Tags: ,

Relacionados



Jul 07 2009

Kommbo Express – 09/07


dia 09/06 (quinta) na Arte Chopp em Floripa.
dia 09/06 (quinta) na Arte Chopp em Floripa.

Quer saber das últimas tendências? Tudo o que rola na web? Ainda por cima conhecer a galera intelecto-cult-descolada-miguxa do twitter? Não perca o Kommbo Express dia 09/06 com os painéis “Contruindo o Digital” por @tiagomx e “Descronstruindo o Digital” por @Betushco. Após os painéis Cocktail Party com cinco dj’s.

Pro pessoal de Blumenau: vale a pena rachar aquela gasolina para ir até lá!

Comments (0)

Tags: ,

Relacionados



Jul 02 2009

Coisas que eu gosto no meu ambiente de trabalho…


Leitor de cartões e portas usb no monitor

Leitor de cartões e portas usb no monitor

controle do media player no teclado

controle do media player no teclado

portas usb no teclado

portas usb no teclado

monitor gigante

monitor gigante

Comments (0)

Tags: ,

Relacionados