Mostrando postagens com marcador programação. Mostrar todas as postagens
Mostrando postagens com marcador programação. Mostrar todas as postagens

11 de agosto de 2010

Ir_black, tema para o Vim

O ir_black é um tema com background escuro e cores agradáveis para o Vim que eu passei a usar a pouco tempo. Eu o encontrei perdido num blog, ele não está listado no site oficial do editor.

Python:


















HTML:



C:










Latex:










Faça o download do tema ir_black.

27 de julho de 2010

Trilha sonora para programar

Eu já falei aqui que gosto muito de música, não me considero muito entendido, mas sei que gosto bastante. Adoro descobrir bandas novas e sinto falta quando passo muito tempo sem ouvir alguma coisa boa. Além de fazer isso por prazer, ouvir música me mantém mais focado, pois barulhos externos que poderiam desviar minha simplesmente não chegam aos meus ouvidos. Talvez seja por isso que eu estou quase sempre com meus fones enquanto programo.

Eu escuto vários estilos de música, mas eu não sou eclético, nem perto disso, o mais importante é escutar algo que eu queira. Minhas vontades simplesmente mudam de dia para dia, não tenho explicação para isso. Minhas bandas favoritas tem estilos que variam de rock (inclua várias subdivisões aqui, indie, punk, alternativo, metal, etc.) e eletrônico.

Eu conheço muitos desenvolvedores que também adoram programar ouvindo música. Será só por diversão ou conscientemente eles usam os fones para diminuir as distrações? Vocês talvez possam me ajudar a responder isso. Vocês costumam ouvir música? Por que? Quais estilos mais empolgam na hora de programar?

22 de março de 2010

Alinhando uma coluna à direita numa QTreeView

Essa semana eu quebrei muito a cabeça com o componente QTreeView do QT4, foram vários problemas, ainda bem que consegui solucionar todos. Um desses problemas eu vou detalhar nesse post e também mostrarei a sua solução.

Eu queria uma TreeView com duas colunas, simples, sem hierarquias. Mas eu necessitava que a 2ª coluna tivesse um tamanho fixo e a 1ª coluna preenchesse todo o espaço restante da TreeView. O problema é que a QTreeView possui exatamente o comportamento contrário, nela as primeiras colunas possuem tamanhos fixos e a última preenche todo o espaço restante. É possível fazer com que todas as colunas tenham tamanhos fixos, mas não existe nenhuma maneira simples de definir qual coluna eu quero que preencha todo o espaço vazio. O que fazer?

Como meu widget era uma classe que herdava de QTreeView eu resolvi meu problema redefinindo o método resizeEvent. Esse método é chamado toda vez que o widget é redimensionado. O que eu precisava fazer era apenas redimensionar as minhas colunas sempre que o widget todo fosse redimensionado. A 2ª coluna ficaria com um tamanho fixo e a 1ª coluna ficaria com o restante do tamanho da TreeView menos o tamanho da 2ª coluna.

O método ficou assim:

def resizeEvent(self, event):
last_column_size = 25
self.setColumnWidth(0, self.width() - last_column_size)
self.setColumnWidth(1, last_column_size)

Simples, fácil e funcionou muito bem.

Se alguém souber outra maneira, principalmente se for mais fácil, sinta-se a vontade para comentar.

12 de janeiro de 2010

Div com cantos arredondados usando JQuery

Algo muito útil que eu descobri esses dias foi uma forma de arrendondar os cantos de uma div de maneira muito simples usando JQuery. Você não precisa usar imagens e com poucas linhas de código sua div estará com os cantos suavizados e sem serrilhados.

Para isso, além do JQuery, você precisa instalar o plugin JQuery Corner.

Primeiramente, para usar o plugin, você precisa importar o JQuery e o JQuery Corner adicionando as seguintes linhas entre as tags <head></head>:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.corner.js"></script>

Lembre-se o que o conteúdo do src pode variar de acordo com a localização do JQuery e do JQuery Corner no computador.

Vamos usar o código HTML abaixo como exemplo:

<html>
    <head>
        <style type="text/css">
            #main {
                background-color: #0055CC;
                color: #FFFFFF;
                text-align: center;
                padding: 5px 0px;
            }
        </style>

        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="jquery.corner.js">
        </script>        
    </head>

    <body>
        <div id="main">
            <h1>yLog</h1>
        </div>
    </body>
</html>

Para arredondar os cantos da div #main precisamos apenas adicionar as seguintes linhas de código javascript entre as tags <head></head>:

<script type="text/javascript">
    $(document).ready(function() {
        $('#main').corner("15px");
    });
</script>

Onde "15px" define o tamanho da suavização da borda.

Existem outros efeitos aplicáveis aos cantos da div. Veja a documentação do JQuery Corner.

O JQuery Corner facilita muito o trabalho de fazer esse tipo efeito. Você não precisa usar nenhuma imagem, tudo é feito com javascript e o resultado não podia ser melhor.

17 de janeiro de 2009

Grupy-PB

No ano passado foi criado o grupo de usuários Python do estado da Paraíba, o Grupy-PB. Não tivemos nenhuma reunião oficial ainda, mas novidades estão por vim.

Em 2009 estamos planejando um encontro para pessoas interessadas em Python interagirem, trocarem idéias e por que não bolarem grandes projetos. No encontro também deve acontecer palestras sobre temas relacionados a linguagem. Na minha opinião um evento bastante relevante e que não acontece com frenquência, ou seja, uma oportunidade que não se deve perder.

Quem gostar da linguagem e for do nosso estado se cadastre no site e também na lista de discussão do Grupy-PB para interagir mais com a comunidade da Paraíba.

19 de outubro de 2008

Bruce Eckel explicando Decorators em Python

Bruce Eckel autor do livro Thinking in Java e que também ama Python. Publicou um texto explicando Decorators em Python. Como ele mesmo diz: "I predict that in time it will be seen as one of the more powerful features in the language".

Então, aproveitem. Decorators I: Introduction to Python Decorators.

* Update *

Decorators II: Decorator Arguments

28 de dezembro de 2007

TextFlow 0.2.1

Nova versão lançada - TextFlow 0.2.1.

As principais novidades são:
  • Entrada no menu do GNOME.
  • Pode-se abrir os arquivos pelo Nautilus (se vários arquivos estiverem selecionados cada um será aberto em uma aba).
  • StatusBar mostrando a posição do cursor (linha e coluna).
  • Vários bugs corrigidos.
O TextFlow está disponível em tar.gz (código fonte), .deb para Ubuntu Gutsy e para os usuários do Arch Linux um pacote está disponível no AUR (thanks Sryche).

Aproveitem também para baixar esse maravilhoso "cheat sheet" com os shortcuts do TextFlow.

22 de maio de 2007

Instalando Anjuta 2.1.3 no Ubuntu

Um usuário recém chegado ao Linux muitas vezes se sente perdido ao procurar um IDE para programação em C/C++. Ao perguntar a um usuário mais experiente provavelmente ele receberá a resposta para usar Vim ou Emacs. Estes editores podem ser bem poderosos, mas estão longe de ser amigáveis. Depois de rejeitar um desses editores "estranhos", a próxima opção parece ser um IDE chamada Anjuta. Por mais que seja uma boa solução o Anjuta que está nos repositórios do Ubuntu é uma versão bem antiga que pode novamente lhe frustrar.

Mas nada está perdido. Você pode usar a versão novinha do Anjuta. Por que não? Esta nova versão está bem mais organizada e tem uns novos plugins bem úteis. Vamos ao passo a passo para instalação.
  1. Desinstale o Anjuta (se ele estiver instalado)
  2. Abra o terminal
  3. Digite: sudo gedit /etc/apt/sources.list
  4. Acrescente a seguinte linha ao arquivo: deb http://anjuta.org/apt ./
  5. Salve e feche o arquivo
  6. Digite ainda no terminal: sudo gedit /etc/apt/preferences
  7. Copie e cole as seguintes linhas:
    Package: anjuta
    Pin: version 2.*
    Pin-Priority: 990

    Package: anjuta-common
    Pin: version 2.*
    Pin-Priority: 990

    Package: anjuta-dev
    Pin: version 2.*
    Pin-Priority: 990
  8. Salve e feche o arquivo.
  9. Digite no terminal: sudo apt-get update
  10. Para finalizar, instale o Anjuta: sudo apt-get install anjuta
Se você necessita de um IDE bem integrada com o ambiente Gnome vale a pena conferir essa versão do Anjuta.

Também é importante lembrar que não é necessário o uso de um IDE para programar, muita gente na verdade nem gosta, mas que facilita em muitos casos ninguém pode negar.

3 de março de 2007

VIM IDE - code folding

Se tinha uma coisa que eu achava uma das mais estranhas no VIM era o seu code folding, aquele recurso de esconder várias linhas em apenas uma. A maioria dos editores deixam claro onde você pode dobrar o seu código para ele ficar resumido, mas no VIM não tinha nada parecido.

Não tinha? Engano meu.

A receita para ter um guia para as dobras do seu código é essa:
  1. Ative o tipo de dobra que você deseja usar, para o modo de sintaxe, por exemplo, o comando é set fdm=syntax. Para mais modos utilize o menu do Gvim (Ferramentas > Dobra > Modos de dobras)
  2. Ative a barra lateral onde aparecerá o guia para as dobras. O comando é set fdc=2, onde o número dois é a largura da barra.
Esses comandos podem ser adicionados ao seu arquivo vimrc para que seu VIM já inicie com as configurações necessárias para um code folding completo.

O atalho para abrir/fechar dobras é o za, simples e rápido, mas clicar com o mouse em um + ou um - é bem mais intuitivo.

24 de fevereiro de 2007

Explicando SEO para um cliente

Tirinha interessante...


Isso se aplica a várias áreas, inclusive fora da informática, não vá explicar detalhes técnicos para os seus clientes, eles não querem perder tempo com isso. Não deixe a mostra para os seus usuários o que eles não precisam saber e que vai apenas confundí-los. Keep it simple stupid!

17 de fevereiro de 2007

VIM IDE - executando comandos externos

O VIM é um editor de texto que mais parece um canivete suiço, ele faz tudo e mais um pouco (sem perder a leveza). Continuando a série de dicas ensinando como usar algumas funções típicas de um IDE no VIM eu irei mostrar como executar comandos externos.

Para executar um comando externo, primeiro vá para o modo de comando, tecle ESC e depois :. Você pode digitar o comando que quiser executar precedido de uma !. Por exemplo, :!gcc meu_programa.c. Agora você pode compilar e testar seus programas sem sair do VIM.

Outro recurso interessante é a possibilidade de redirecionar a saída de um comando para o texto do documento que está sendo editado. Vamos a um exemplo para explicar melhor.

O comando seq 5 no terminal gera uma seqüencia que começa em 1, depois 2, 3 até o 5, com um número por linha. Para jogar essa saída no VIM você deve usar o comando :%!seq 5 dentro do editor.

O problema de usar o comando acima é que ele substitui o texto já existente no arquivo, o que muitas vezes atrapalha, porém o VIM não ia nos deixar na mão. Para adicionar o texto ao invés de substituí-lo posicione o cursor onde o texto será incluido e use o seguinte comando :r!seq 5.

Quanto mais você aprende a usar o VIM menos falta você sente de IDEs pesadas, que ajudam, mas que não precisam nos tornar reféns.

1 de fevereiro de 2007

Extensão para Nautilus - Image Resizer

Quando estou querendo fazer alguma alteração simples em uma imagem eu sempre fico me perguntando por que eu tenho que abrir o espalhafatoso Gimp, são três janelas na barra de tarefas e odeio uma barra de tarefas poluída.

Pensando nisso e apoiado nesse post sobre extensões do Nautilus, eu resolvi iniciar o desenvolvimento de uma extensão para realizar operações rápidas com imagens. O primeiro recurso será o Image Resizer, o qual, como o próprio nome diz, redimensiona uma ou mais imagens com poucos cliques.

A interface é fortemente inspirada na extensão da Bitron Software, mas nada ainda é definitivo:

interface do Image Resizer
Em breve eu estarei disponibilizando uma versão beta da extensão para que todos possam usar e com um pouco mais de tempo eu começarei a desenvolver outras extensões úteis na manipulação de imagens do dia-dia.

Queria agradecer ao Laudeci aka Pretto, por ter me ajudado com o Python todas as vezes que eu lhe perturbei no #ubuntu-br.

29 de janeiro de 2007

Mudando a cor do menu popup do VIM

O Omni Completion do VIM é um recurso maravilhoso, você completa seu código rapidamente e o programa nem parece carregar nada para gerar o menu, é muito leve, assim como todo o VIM.

O menu popup do VIM seria uma maravilha se não fosse sua combinação de cores quase cegante de fundo rosa com letras brancas. Parece que é de propósito para o usuário aprender a configurar o editor, mas pelo menos existe a possibilidade mudar.

Vamos lá, abra o seu .vimrc e adicione a seguinte linha:
highlight Pmenu guifg=white guibg=DodgerBlue4 gui=bold
Onde guifg é a cor da letra e guibg a cor do fundo do menu, que nesse caso é um bem mais agradável azul escuro.

Ficou mais bonito, certo, mas de onde você tirou o nome dessa cor DodgerBlue4? Como eu vou saber isso?

Para saber os cores disponíveis no VIM siga essa dica disponível no site deles.

18 de janeiro de 2007

Buscador de códigos em livros

Se o Google Code Search já é uma boa fonte de exemplos de códigos o site Codefetch traz uma proposta tão boa quanto. O site fornece serviço de procura de código de programas que estão contidos nos livros que estão no mercado.

Todos os resultados são divididos de acordo com os livros e na própria página existem links para comprar os livros na Amazon. Com isso o dono do site deve faturar uma graninha.

O Codefetch é uma grande ferramenta nas mãos dos desenvolvedores, imagine a quantidade de exemplos de vários livros de várias linguagens todos disponíveis gratuitamente. Eu não sei como eles conseguiram ter esse material legalmente, mas a idéia é muito boa.

Eu imagino que os autores não devem se preocupar muito com esse serviço, pois o site acaba fazendo uma publicidade muito boa dos livros e expõe apenas uma pequena parte do trabalho deles. Eu não deixaria de comprar um bom livro porque tenho os exemplos de graça.

10 de janeiro de 2007

VIM IDE - configurando o navegador de arquivos

Um dos editores mais antigos para linux também pode ser sua ferramenta para programação, muitas pessoas usam ele e garantem que não há nada melhor se falando em editores de texto (talvez o Textmate cale alguns). As duas principais dificuldades para usar o VIM são os seus atalhos nada convencionais e a necessidade de fazer várias configurações para ele atender todas as suas necessidades.

Como o VIM é altamente customizável é muito difícil mostrar todas as configurações utilizadas, muitas vezes o que é bom pra mim não é para você. Nesse post eu vou mostrar como configurar o navegador de arquivos no VIM. Nada melhor do que ter aquela lista de arquivos do lado do seu código, pois quanto menos esforço com bobagem melhor.

O VIM já vem com um navegador de arquivos embutido, porém os recursos oferecidos não atendem as exigências de várias pessoas. Para ter um navegador de arquivos melhor vamos usar o script VTreeExplorer. Faça o download dele e o próximo passo será sua instalação.

Descompacte baixado o arquivo e copie as pastas "doc" e "plugin" para o diretório "~/.vim". Pronto já está instalado! Para testar é só abrir o VIM, digitar :VSTreeExplore e enter.

Xii, dividiu a tela no meio, os arquivos estão fora de ordem, que bagunça!

Calma, agora é que vem a "mágica". Vamos configurar o VTreeExplorer, o VIM é assim 1001 possibilidades, você tem que configurar como gosta. Eu não concordo muito com essa idéia deles, mas o poder por trás do editor é muito grande.

Os passos descritos agora vão fazer com que o comando :VSTreeExplorer divida a tela verticalmente e liste os arquivos do lado esquerdo.

Primeiro abra o arquivo ~/.vimrc, o arquivo de configuração do VIM. Agora você precisa adicionar as seguintes linhas ao arquivo:
let treeExplVertical=1
let treeExplDirSort=1
Feche e abra o VIM para aplicar as alterações e agora digite novamente :VSTreeExplorer para ver o resultado.

Oba agora eu gostei ficou muito bom!

Para finalizar vou ensinar alguns atalhos úteis na utilização do navegador de arquivos. O primeiro deles é o atalho "a", ao teclar a letra "a" o navegador alternará entre mostrar ou não os arquivos ocultos. O segundo é o atalho "C" (shift-c), coloque o cursor em cima de um diretório e tecle shift-c, com isso o VTreeExplorer começará a listar os arquivos do diretório no qual o cursor estava posicionado. O último deles é o "?", sua função é mostrar um simples help que traz uma pequena lista com os atalhos que você pode usar. Pintou uma dúvida? Esqueceu um atalho? Tecle "?" no buffer do navegador de arquivos.

Espero ter ajudado quem precisava dessa funcionalidade e não sabia o que usar, e também espero ter desmistificado um pouco o VIM. O maior segredo, mesmo que pareça chato, é o help do plugin. A primeira vez que eu usei o VTreeExplorer também não gostei, mas aí eu fui vendo que ele era utilizado por outras pessoas e acabei resolvendo ler o seu help. Várias dúvidas foram sanadas e hoje posso guiar de uma forma mais amigável que está em dúvida.

2 de janeiro de 2007

Gedit IDE (parte 2)

Para complementar o post passado sobre o Gedit resolvi dar detalhes de como deixar seu editor do jeito do vídeo, quais plugins instalar e como usá-los.

Plugins utilizados

Advanced Editing: Esse plugin não aparece no vídeo, mas eu tenho certeza que ele vai ser muito útil em qualquer edição de texto. Com ele você terá os seguintes recursos adicionados:
  • Deletar caractere
  • Deletar caractere anterior
  • Deletar palavra
  • Deletar palavra anterior
  • Deletar até o fim da linha
  • Deletar linha
  • Remover espaços em branco
  • Reduzir espaços em branco
Para utilizar melhor esses novos comandos eu recomendo a criação de atalhos, pois você não querer abrir o menu toda vez que quiser executar alguma dessas operações (ou vai?), para criar esse atalhos abra o terminal e digite "gnome-ui-properties". Uma janela se abrirá, nela marque a opção "Atalho de menu editável". Agora você já pode setar atalhos para qualquer entrada do menu de um aplicativo do gnome, para isso deixe o mouse em cima da opção do menu e tecle o atalho desejado.

Auto Completion

Esse plugin é bastante útil e prático, ele completa palavras com a tecla TAB no mesmo estilo do terminal do Linux. Esse recurso é praticamente fundamental para os editores de textos com foco na programação.

Bracket Completion

Outro importante plugin para agilizar a edição de arquivos. Com ele parênteses, colchetes e chaves são fechados automaticamente. Nada de deixar acontecer erros por falta de algum bracket fechado.

Class Browser


Esse plugin vocês viram bem no vídeo. Com ele instalado um painel lateral é adicionado ao gedit, onde é mostrado informações sobre classes e métodos do seu programa.

Code Comment

Comenta e descomenta trechos do código através de dois atalhos, ctrl+m e ctrl+shift+m respectivamente.

File Browser

Esse era um dos plugins que os usuários mais desejavam, um navegador de arquivos na barra lateral do editor. Super útil para quem alterna muito entre os arquivos durante um projeto.

Terminal

Nada como ter um terminal facilmente acessível, com esse plugin você não vai precisar abrir mais um programa (terminal) para executar alguma operação necessária.

Snippets (Trechos)

Esse é o plugin que eu mais gosto, ele imita os recursos dos snippets do editor Textmate, se você gastar um pouco de tempo configurando ele para atender suas necessidades eu tenho certeza que essa será uma ferramenta indispensável para edição dos seus códigos.

Com todos esses plugins instalados o seu gedit ficará com a maior cara de IDE. É díficil substituir IDEs mais consagradas como o Eclipse, porém o gedit aos poucos vai se aproximando bem da maioria dos editores para programação que existem por aí.

29 de dezembro de 2006

Gedit IDE

O editor de texto padrão do ambiente Gnome ultimamente vem se tornando algo mais. Com a inclusão do suporte a plugins escritos em Python uma grande quantidade de recursos foram adicionados ao Gedit, o que vem possibilitando um crescimento do mesmo.

Para apresentar algum desses recursos que estão tornando o simples editor é uma ferramenta poderosa para os programadores eu criei um screencast mostrando alguns recursos interessantes, entre eles temos os famosos snippets, temos também um class browser e ainda um terminal embutido no editor.

Com a nova versão do Gtksourceview o Gedit deve ganhar ainda mais força e dessa forma teremos um editor interessantíssimo como padrão do Gnome.

Se você ficou curioso para saber como gravar seus screencasts vejam esse post que fala sobre o programa record my desktop.

24 de dezembro de 2006

Ubuntu Forums - desafio de programação semanal (22/12)

Mais um desafio de programação do fórum gringo do Ubuntu, os desafios estão ficando cada vez mais interessante. Essa semana o problema foi dividido em duas partes. A primeira é verificar se uma palavra, frase ou número era palíndrome, a segunda é encontrar o menor número palíndrome após um número dado.

Um exemplo para vocês entenderem melhor:

1ª parte) Dado a palavra "radar", o programa retornaria true, já que essa palavra lida de trás para frente também é radar.

2ª parte) Dado um número 199, o programa retornaria 202, já que 202 é o menor número após 199 que é palíndrome.

Diferentemente do teste passado, dessa vez muitas respostas foram aparecendo, incluindo uma em Ruby. Mesmo assim não me intimidei e mandei uma outra resposta escrita nessa mesma linguagem.

class Palindrome

def initialize(phrase)
@phrase = phrase.gsub(/\s|,|'|\./,'').downcase
end

def is_it_palindrome?
@phrase == @phrase.reverse
end

def next_palindrome_integer
integer = @phrase.to_i

until integer.to_s == integer.to_s.reverse
integer+=1
end

return integer
end

end

print "Enter a phrase: "
my_phrase = Palindrome.new(gets.chomp)
puts "Is it palindrome? #{my_phrase.is_it_palindrome?}"

print "Enter a number: "
my_number = Palindrome.new(gets.chomp)
puts "The next integer palindrome is: #{my_number.next_palindrome_integer}"

Eu gostei muito do resultado, o código ficou bem limpo e fácil de entender, o método reverse para strings ajudou muito também.

Novamente eu vou incentivar aos leitores que saibam programar que postem suas soluções tanto aqui nos comentários quanto no tópico do fórum oficial do Ubuntu.

15 de dezembro de 2006

Ubuntu Forums - desafio de programação semanal (15/12)

O desafio dessa semana promovido pelo Ubuntu Forums (aka fórum gringo) é um pouco mais complexo do que o passado, o problema dessa vez é escrever um programa que leia um número, por exemplo 12984 e imprima na tela twelve thousand nine hundred eighty-four.

O tempo foi passando e não apareceram muitas respostas, talvez por ser mais trabalhoso, não sei ao certo, mas dessa vez eu resolvi participar. As primeiras respostas foram em C++ e Python respectivamente, então para variar um pouco eu resolvi escrever um programa em Ruby para solucionar o desafio.

Minha solução para o problema foi a seguinte:

=begin
This program convert a number to words

Yuri Malheiros
December, 15th 2006
=end

class Number
def initialize(x)
@words = {
0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three',
4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven',
8 => 'eight', 9 => 'nine', 10 => 'ten', 11 => 'eleven',
12 => 'twelve', 13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen',
16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen', 19 => 'nineteen',
20 => 'twenty', 30 => 'thirty', 40 => 'forty', 50 => 'fifty',
60 => 'sixty', 70 => 'seventy', 80 => 'eighty', 90 => 'ninety',
}

@number = x
end

def string_hundred(x)
result = ''

if (x/100) >= 1 && (x/100) <= 9
result << @words[x/100] << ' hundred '
end

if (x % 100) >= 1 && (x % 100) <= 20
result << @words[x%100]
elsif (x%100/10*10) != 0
result << @words[x%100/10*10]
if (x%10) > 0
result << '-' << @words[x%10]
end
end

return result
end

def to_s
result = ''
thousands = @number % 10**6 / 1000
millions = @number % 10**9 / 10**6

if @number == 0
result << @words[0]
end

if millions >= 1 && millions <= 999
result << string_hundred(millions) << ' million '
end

if thousands >= 1 && thousands <= 999
result << string_hundred(thousands) << ' thousand '
end

result << string_hundred(@number % 1000)
end

end

print "Enter a number: "

number = gets.chomp.to_i

myNumber = Number.new(number)
puts myNumber

Esse problema poderia ser resolvido de inúmeras maneiras diferentes e provavelmente deve existir alguma com menos linhas de código, o que não necessariamente implica em um programa mais simples. Eu usei os conhecimentos que tinha sobre a linguagem e consegui um bom resultado em um tempo relativamente curto.

Quero ver agora a solução do pessoal para outras linguagens, tanto no fórum quanto nos comentários aqui do blog.

14 de dezembro de 2006

Dúvidas sobre programação? Pergunte.

O objetivo do site devpals é criar uma comunidade de programadores onde eles possam perguntar sobre uma determinada linguagem e também responder as dúvidas que aparecerem. Inicialmente o site conta com categorias para 4 linguagens: java, .net, php e ruby.

Sites de Q & A (Question and Answer), já são comuns na internet, porém o devpals tem um enfoque em linguagens de programação. Outros pontos que chamaram atenção foi o seu visual clean, interface amigável e facilidade de uso. Sem muitas complicações, após um cadastro simples ("registration takes less than a minute") você já está pronto para responder e/ou tirar dúvidas sobre os assuntos abordados.

O site ainda não tem um grande volume de perguntas, mas todas as que eu vi por lá estão respondidas, ninguém está ficando na mão. Você ainda pode contar com a pesquisa, não se torne o chato que faz perguntas repetidas sem pesquisar! A comunidade agradece.