VidaGeek.net

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

Archive for the ‘Programacao’ Category

Design de APIs

Java

Dias atrás encontrei um vídeo que veio de encontro com muito do que tenho feito ultimamente. Java e API.

Estou trabalhando em dois projetos Open Source (falo deles assim que lançar a primeira versão) em java. Consequentemente tenho que me preocupar com a forma que os programadores vão usar essas APIs.

Embora pareça simples (em um dos casos o projeto simplesmente foi extraído de um outro projeto maior), não é nem um pouco trivial. Apenas pense que cada mudança que for feita poderá causar impacto em algum código perdido pelo mundo e você entenderá a complicação.

Depois de já ter definido as duas APIs (pelo menos a parte beeeem inicial), encontrei esse Google Tech Talk do Joshua Bloch em que ele fala exatamente sobre isso.

Uma das coisas que mais gostei no vídeo, é que os exemplos de bons e péssimos designs são tirados do código da especificação J2SE, ou seja, código com o qual lidamos diariamente (a parte em que ele fala sobre CORBA é demais!).

O vídeo tem uma hora de duração (por mim poderia ser ainda maior, pois a palestra é realmente muito boa).

Espero que gostem!

Posts Relacionados:

  • JQuery Plugin
  • Falando em Java: Overview
  • Dia C - Recursão
  • Palestra - Software Livre e Direitos Autorais
  • Assine nosso RSS feed!

  • 0 Comments
  • Filed under: Java, Programacao
  • Programação para crianças

    Caixa do Jogo C-Jump

    Uma empresa americana, chamada C-Jump Factory, inventou um jogo bastante interessante para ensinar conceitos de programação em C, C++ e Java para jovens a partir de 11 anos, chamado C-Jump.

    O jogo simula uma corrida de esqui, mas os passos para se ganhar a corrida são instruções escritas em C nas casas do tabuleiro. Um dado é utilizado como o valor de uma variável numa operação aritmética. O jogador deve calcular o valor da expressão para saber o quanto andar no tabuleiro. Há também condicionais, por exemplo “if (x == 3)”, que desviam o jogador para um caminho ou outro, assim como a execução de um programa.

    Uma citação da página inicial:

    “This game eliminates intimidation of many kids and their parents, bored by the mention of ‘computer programming’, often associated with visions of geeky guys glued to their computers. c-jump reveals simple programming terms in a cool way!”

    mostra uma certa ilusão quanto ao destino das crianças que jogarem esse jogo. Mas ele é bem feito, mesmo assim!

    Em suma, é um ótimo substituto ao computador para dar de presente às crianças. Assim, em vez de perderem tempo com bate-papo, orkut e messenger, elas já descobrem a parte mais legal do computador logo de cara.

    Agradeço a Rafael Izbicki pela recomendação!

    Foto: C-Jump Factory

    Posts Relacionados:

  • CodeIDE
  • Simpósio Brasileiro de Computação Musical
  • Linguagens de programação - C++
  • Um dia na vida de um programador azarado
  • ACM ICPC - Brasil na maratona de programação 2008
  • Programação Dinâmica
  • Linguagens de programação - Smalltalk
  • Assine nosso RSS feed!

    FISL 9.0: Introducing Google Summer of Code

    A palestra da Google sobre o Summer of Code se ateve ao básico: apresentaram o projeto e as motivações do projeto, tanto para a Google quanto para os estudantes participantes.

    Nenhuma novidade causou furor no público da palestra liderada por Fernanda Wiener - seria muito interessante, por exemplo, se divulgassem que haveria um Summer of Code em Belo Horizonte, mas nada disso por ora. Na verdade, extra-oficialmente, quando perguntados sobre a criação de uma versão brasileira do SoC, responderam que estão discutindo a possibilidade de agradar aos dois hemisférios, mas não há nada de concreto ainda.

    Relembrando aos esquecidos ou informando os que dormiram no ponto há muito tempo: o Google Summer of Code é um projeto da Google que oferece estágios remunerados para as férias do verão norte-americano, para trabalhar em um projeto de software livre.

    Vale lembrar, no entanto, aos graduandos interessados que participar do Google Summer of Code implica em perder aulas em junho e agosto, parte do período de férias americanos - vocês deveriam ver se compensa perder essas aulas. Como a restrição para participar do SoC é estar estudando, os alunos de pós-graduação têm uma certa vantagem, dada a flexibilidade desses cursos.

    Em seguida, um representante do Summer of Code falou um pouco e incentivou os atendentes da palestra a se envolverem com alguma organização cadastrada no Google Summer of Code, entrar em contato com mentores e começar a mostrar serviço - isso influencia positivamente sua proposta e aumenta suas chances.

    Além disso, ele disse que os mentores não se incomodam muito com a faculdade que se faz, mas sim com o engajamento na comunidade e projeto e com o seu potencial.

    Um vídeo de incentivo feito pelo projeto Umit pode ser visto no You tube com legendas em português. Enfim, nada de muito novo e todas as informações ditas podem ser facilmente encontradas no Google numa busca comum por “Summer of Code”.

    Na minha opinião, a participação da Google nesse FISL deixou um pouco a desejar, no geral. Apenas o cubo mágico como desafio no stand deles e nada, absolutamente, comparado à palestra sobre Map-Reduce e Big Table do FISL de 2007. Além disso, o pessoal que representou a Google desse ano era muito menos acessível, afastando um pouco o público que se interessava mais do que simplesmente em ganhar uma camiseta por entregar o currículo - decepcionante, Google Brasil.

    Posts Relacionados:

  • Brasileiros no Google Summer of Code
  • Gentoo no Summer of Code
  • Viva aos programadores brasileiros
  • Inscrição de Caravanas para o FISL 8
  • UTF-8 no Latex
  • FISL 8.0
  • Alguns Videos da Google….
  • Assine nosso RSS feed!

    FISL 9.0: Desenvolvimento ágil com Scrum e XP

    Novamente uma palestra surpreendentemente cheia. Não houve muitas novidades para quem já conhecia metodologias ágeis, mas o palestrante Guilherme Chapiewski abordou os temas básicos e gastou os primeiros 5 minutos de palestra em convencer o mercado de que o uso de metodologias ágeis não é loucura da cabeça de poucos, mas sim algo funcional e mais adequado à dinamicidade do mercado atual.

    Iniciou-se a palestra com fundamentos: foram apresentados pontos como “o que é agilidade?”, o manifesto ágil, princípios ágeis, etc - dos quais é impossível fugir, numa palestra introdutória.

    Então, os papéis, reuniões e produtos do Scrum foram apresentados e explicados em detalhes e com diversos exemplos, dando destaque às vantagens das metodologias se comparadas ao tradicional - a dizer, vantagens como a interação constante com os clientes, o trabalho em equipe e a liberdade dos programadores.

    Em seguida, já quase no fim da palestra, abordou-se XP (eXtreme Programming) muito levemente, focando apenas na utilização de algumas práticas de XP num projeto que usa Scrum.

    Particularmente, achei que faltou do palestrante mostrar ter diferentes vivências com as metodologias das quais ele falou. O fato do palestrante falar sobre as metodologias de forma inflexível pode ter afastado as muitas pessoas que abandonaram a palestra no seu decorrer e causado uma impressão errada e amarrada das metodologias apresentadas.

    Levanto, especialmente, um ponto que o palestrante ressaltou como bom e no qual eu não posso discordar mais: a chamada Peer-pression. Chapiewski disse que, pela liberdade que o Scrum dá aos desenvolvedores, os caras mais fracos vêem que não estão colaborando pro projeto tanto quanto os outros e tendem a pedir pra se desligarem dele, poupando ao gerente a função de demití-los.

    Talvez por conviver com muitas pessoas boas com baixa auto-estima com relação ao seu trabalho, eu acho que o ponto positivo do Scrum é exatamente sua característica antitésica: ver os resultados do seu trabalho rapidamente te deixa mais contente. Quanto à peer-pression, acho que ela ser positiva ou negativa depende única e exclusivamente do grupo com o qual se trabalha. Além disso, acredito que essa nova forma de pressão não deveria ser o filtro de qualidade dos programadores de um projeto.

    Se o foco era uma palestra introdutória, como os temas abordados sugerem, eu esperaria que a “propaganda” dessas metodologias fosse melhor feita. A impressão que fica é de que a palestra deveria participar da trilha de Casos/Soluções e não de Desenvolvimento: ferramentas/metodologia.

    Posts Relacionados:

  • Inscrição de Caravanas para o FISL 8
  • FISL 8.0
  • FISL 9.0: Desenvolvendo jogos com PyGame
  • Séries
  • Desenvolvimento de jogos com o Morphic
  • Dia C - Usando testes para o desenvolvimento
  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • Assine nosso RSS feed!

    Publicidade