VidaGeek.net

Linux, Open-source, Programação e Produtividade

Archive for August, 2008

Resolvendo o Cubo Mágico

Resolvendo o Cubo Mágico
   JP Brown é um Geek com G maiúsculo. Em sua página (JP Brown’s Serious LEGO) ele mostra inúmeros projetos de Lego Mindstorm, o famoso pacote de robótica para Lego. Dentre os seus projetos mais interessantes está o da figura ao lado, capaz de resolver o Cubo Mágico (Rubik’s Cube).

Ou seja, ele foi além do que os Geeks estão acostumado (a resolver o cubo na mão), fazendo um robô que o resolva. Além deste projeto, ele mostra também seus outros projetos, sendo os mais interessantes (na minha opinião) o que resolve as
Torres de Hanoi (um clássico dos problemas recursivos) e o
K9, um cachorro que consegue buscar uma bola.

Mais detalhes do projeto podem ser encontrados na
página do mesmo.

Se você se interessou pelo o Lego Mindstorm, procure alguém que possa traze-lo dos EUA para você (US$ 249,99 na Amazon), já que por aqui ele custa uma pequena fortuna (R$ 1889,90 na Rihappy).

Posts Relacionados:

  • Retrospectiva 2008
  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • FISL 9.0: Introducing Google Summer of Code
  • Git Workflow
  • FISL 8.0: Entrevista com Guilherme Silveira, um dos ganhadores da Arena
  • Guia Linux - Parte II: Sistema Básico
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    NeoOffice: Um OpenOffice Nativo para Mac

    Neo Office Logo
    Uma das maiores frustrações que tive no Mac foi o OpenOffice. O melhor pacote Office open-source é simplesmente uma carroça no meu MacBook. Provavelmente por causa do X11 que funciona de maneira bem estranha e que consome muita memória (até pouco tempo atrás eu não tinha feito um upgrade de memória ainda e por isso sofria muito com qualquer aplicação X11 no Mac). Outra questão é que ele não se encaixa na usabilidade do MacOS e é feio (pronto, falei). Ele simplesmente não encaixa.

    Mas felizmente, em algum canto obscuro da internet, encontrei o NeoOffice. Trata-se de um fork do próprio OpenOffice, mas que ao invés de usar o X11 tem uma interface nativa para Mac. Como resultado ele é mais bonito que o OpenOffice e tem uma integração maior com o sistema, por exemplo usando as fontes do sistema e serviços de impressão sem precisar de outras configurações. Por outro lado, este pacote nunca é baseado nas versões mais recentes do OpenOffice, já que a equipe de desenvolvimento é pequena e gasta muito tempo para integrar a interface. Mas não tive nenhum problema até hoje por causa disso (mas também não sou um usuário diário de pacote Office, uso apenas quando alguém manda um anexo .doc - por favor, nunca faça isso, ao invés disso mande um pdf).

    A nova versão do OpenOffice para Mac não precisará do X11 e, portanto, o futuro do NeoOffice é incerto. Mas o beta atual do OpenOffice não é nem um pouco estável e portanto recomendo o NeoOffice por enquanto até a versão 3.0 do OpenOffice sair.

    Posts Relacionados:

  • Top 50 Alternativas Open-Source
  • Sincronizando o OpenOffice com o Google Docs
  • Java 1.6 no Mac
  • Como carregar extensões do kernel no Mac OS X
  • Meu Ubuntu fala!
  • Guia Linux - Parte IV: Aplicativos
  • MacOSX Terminal e os Alias do Finder
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 3 Comments
  • Filed under: Mac
  • Squeak LogoSmalltalk é a linguagem de programação que tornou popular o paradigma de orientação a objetos. Inspirou as linguagens mais populares da atualidade: Java, Ruby, Python, etc. Mais sobre a história do surgimento de Smalltalk pode ser visto na Wikipedia (o artigo em inglês é mais completo).

    Um dos grandes atrativos da linguagem é a sintaxe, bastante diferente da convencional. Existem três tipos de chamadas de métodos:

    • Simples, sem argumentos: {objeto} {mensagem}
    • Com um argumento, binário: {objeto} {mensagem} {argumento}
    • Com vários argumentos, por seletores: {objeto} {mensagem} {argumento1} {cont. da mensagem} {argumento2} …

    Para tornar mais claro o último tipo, é necessário olhar para a declaração de um método que recebe vários argumentos, que é assim:
    umaMensagemComArgumento: objeto eOutro: arg1 eMaisUm: arg2
    Os parâmetros ficam intercalados no nome do método. Assim, uma chamada para esse método seria feita assim:
    destinatario umaMensagemComArgumento: 1 eOutro: 2 eMaisUm: 3

    Outra característica bastante interessante em Smalltalk é que tudo são objetos. Isso faz com que a linguagem não possua if, else, switch, while nem nenhum outro tipo de palavra reservada. Todos esses controles de fluxo são implementados como métodos de objetos Boolean.

    Um ponto que é positivo e negativo ao mesmo tempo é o fato de os programas em Smalltalk estarem muito atrelados ao ambiente de desenvolvimento que, por sua vez, é atrelado à máquina virtual. Não é tão simples fazer com que programas Smalltalk executem fora da IDE, que normalmente é o Squeak (que, aliás, é um ambiente de desenvolvimento bastante interessante e completo).

    Existem diversas bibliotecas interessantes para usar em Smalltalk. Cito, por exemplo, Magma (que implementa um banco de dados orientado a objetos) e Seaside (um servidor e framework web). Existe, inclusive, um site que hospeda gratuitamente aplicações em Seaside.

    Uma linguagem que segue de perto os conceitos de Smalltalk mas trabalha com protótipos ao invés de classes é Self. Self é um projeto da Sun que parece descontinuado, atualmente, apesar de bastante interessante.

    Achou interessante? Não gostou? Discorda de alguma coisa? Quer adicionar mais alguma coisa nesse post? Comente abaixo, no nosso fórum ou envie um e-mail para nós: admin at vidageek.net.

    Imagem via Kurtz-Fernhout

    Posts Relacionados:

  • FISL 10: Seaside versus Rails
  • Linguagens de programação
  • Desenvolvimento de jogos com o Morphic
  • Linguagens de Programação - Basic
  • Lambda the Ultimate
  • Linguagens de Programação - C
  • Linguagens de programação - C++
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 5 Comments
  • Filed under: Programacao
  • Java 1.6 no Mac

    Java no Mac
    Uma decepção geral de programadores Java com o MacOS é que a versão corrente do Java é a 1.5. Um update da Apple foi lançado para fornecer suporte a Java 1.6, mas está disponível apenas para a plataforma 64 bits (não vejo sentido nenhum nisso). E aparentemente nenhum esforço tem sido feito para que os usuários de Mac tenham a versão mais recente do Java em suas máquinas.

    E ai que entra o projeto SoyLatte, um port do Java do BSD para o Mac (lembrando que o kernel do Mac usa o FreeBSD). O projeto funciona bem e é fácil de instalar, mas existe um porém: qualquer programa que use janelas precisa do X11 do Mac rodando. Portanto, você precisará instalar o X11 e lembrar de roda-lo antes de uma aplicação Java, uma chateação bem grande. Note que se o X11 não estiver rodando a janela simplesmente não abrirá (aparentemente assim que o X11 rodar, elas aparecem) e não encontrei nada que automatize o processo, ou seja, que rode o X11 pra você se ele não estiver rodando. Uma boa é deixar a configuração pronta para usar o SoyLatte, mas usar o 1.5 quando for possível.

    Esta solução não é nem perto de ser ótima, mas enquanto a Apple nos deixar na mão é o que podemos fazer. A muito tempo atrás, abordamos como instalar pacotes open-source no seu Mac, acho que vale a pena dar uma olhada.

    Imagem por justinsane

    Posts Relacionados:

  • Como carregar extensões do kernel no Mac OS X
  • Rails Vs Java e PHP
  • Meu Ubuntu fala!
  • NeoOffice: Um OpenOffice Nativo para Mac
  • MacOSX Terminal e os Alias do Finder
  • Mac Widgets
  • Unix no Mac
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 9 Comments
  • Filed under: Dicas, Java, Mac, Programacao