Notícia interativa em tempo real com o Qik

Agora pela manhã, nós na Myfreecomm, experimentamos um dos reais potenciais da junção de internet com tecnologia móvel: Notícia interativa em tempo real!

Recebi uma mensagem SMS do Rafael Lima avisando: “O motor do Catamarã parou. Vou me atrasar. Veja no Qik!”; Na hora, eu estava na frente da máquina e acessei sua página no Qik, onde ele transmitia em tempo real o evento. Para informar o resto da equipe, publiquei no Twitter o ocorrido. E em pouco tempo, o pessoal podia interagir no Live Chat do Qik acompanhando o sufoco que o Rafa passava. Impressionante!

Fiquei particularmente espantando com o poder da soma destas tecnologias, que já estão razoavelmente acessíveis. Incrível como foi possível ampliar e facilitar a comunicação entre um grupo de pessoas, colocando todos em contato imediato com a informação. Imaginem as possibilidades!!! Qualquer um pode fazer um furo de reportagem, compartilhar momentos inusitados, divulgar notícias e informações de forma realmente democrática.

Myfreecomm nos eventos de software livre

O segundo semestre de 2008 está com tudo! Três grandes eventos sobre tecnologias e software livre serão realizados no Rio e em São Paulo, e a Myfreecomm já confirmou sua presença! ;-D

Em setembro, a PyConBrasil 2008 reunirá no Rio de Janeiro, grandes nomes da comunidade Python para discutir a evolução da linguagem e sua crescente participação no ambiente corporativo.

Já em outubro, a Rails Summit Latin America apresentará as novidades do Ruby On Rails e sua expansão entre as soluções web. Logo na seqüência, o CONISLI será palco das discussões sobre a situação atual e o futuro do software livre.

Façam já suas inscrições e entrem em contato para organizarmos um bate-papo durante o evento. Até lá!

Meme: Codificando um Brasil Melhor

Em tempo de eleição, iniciamos nossas reflexões sobre os problemas políticos que afligem o Brasil. Buscando uma maneira prática de fazer a diferença e promover mudanças, Vinicius Manhães Teles publicou uma visão muito interessante sobre como a comunidade de desenvolvedores poderia aplicar seu conhecimento técnico na criação de ferramentas e facilidades para ampliar a troca de informações sobre políticos e governos.

Logo que li o post do Vinicius, fiquei com aquela sensação de Eureka. Pelos comentários dos leitores, muita gente sentiu o mesmo. Este post é uma proposta de meme para motivar o debate sobre o assunto. E o meu foco aqui é estratégia.

Estratégia é a palavra de ordem para levar qualquer iniciativa ao sucesso! É muito comum desenvolvedores impulsionados por idéias brilhantes, darem muita importância à tecnologia e assim perderem o foco no objetivo final. É assim que a maioria dos projetos jamais vêem a luz do dia. Seguindo essa linha de reflexão, anotei algumas questões que considerei importantes:

Censura

Políticos são pessoas públicas, assim, têm seus direitos de privacidade “reduzidos”. No entanto, calúnia, injúria e difamação são sempre invocados para repelir o direito à informação. Por isso é importante fundamentar o conteúdo, referenciando fontes como jornais, diários oficiais, lista de presença de audiências, etc.

Free em todos os aspectos

Tentativas de regulamentar a internet no Brasil estão cada vez mais populares. O Google já responde por alguns processos por causa do Orkut. Com um mínimo de sucesso, não seria surpresa se liminares fossem despachadas para tirar o serviço do ar. Por isso é importante disponibilizar na íntegra, todo o conteúdo e código para download, permitindo mirrors e outras iniciativas de replicação do material.

Hospedagem custa dinheiro

Começar pequeno não é o problema. Qualquer Dreamhost dá conta do recado. Mas dinheiro será necessário para suportar um relativo sucesso. Como obter recursos? Doações? Publicidade? Pela natureza do projeto, a forma de captação é bastante importante para não comprometer a credibilidade. Um banner de partido político seria inviável.

Foco no resultado

Iniciativas Opensource têm custos de criação, apesar de serem oferecidas gratuitamente ao consumidor! Custa tempo dos colaboradores, e como a quantidade de programadores envolvidos é limitada, não é possível fazer tudo, nem tão pouco fazer perfeito. É importantíssimo não esquecer que o objetivo é melhorar a comunicação e disseminar a informação sobre política, e não montar um case revolucionário de rails, django, ou qualquer outra tecnologia. Muito provavelmente um punhado de scripts minimalistas que gerassem as facilidades propostas pelo Vinicius atenderiam perfeitamente aos objetivos deste projeto.

Parcerias com interessados em política

Para manter o motor girando e fazer a comunidade crescer, a participação de pessoas focadas em política é fundamental. As faculdades de Ciências Sociais, História, Filosofia, estão repletas gente jovem e interessada nesse tema. Pessoas que usam internet diariamente, e poderiam ser facilmente instruídas sobre as facilidades e benefícios das novas formas de comunicação que surgem na web. Além disso, envolver organizações como o próprio TransparênciaBrasil encurtaria bastante o caminho para o objetivo de Codificar um Brasil Melhor.

O perfil do desenvolvedor de software na quarta revolução da informação

A mudança no papel da tecnologia da informação provocada pela quarta revolução da informação promove a demanda por desenvolvedores de software capazes não apenas na produção de “códigos de qualidade”, mas na modelagem de problemas complexos e aplicação de técnicas de vanguarda, até então restritas aos centros de pesquisas e universidades.

Nas últimas décadas, a corrida pela informatização motivou o desenvolvimento de gerações de sistemas focados na coleta e armazenamento de dados. Tarefas antes realizadas em alguns dias por um grupo de pessoas, agora automatizadas, são realizadas em minutos por poucos operadores. A tecnologia da informação aplicada como ferramenta de controle e automação, teve um impacto brutal nos custos e nos métodos corporativos.

Com o tempo, estes sistemas deixaram de ser diferenciais competitivos para tornarem-se fatores críticos de sucesso. Assim, as corporações, na busca de melhores resultados demandam uma nova classe de sistemas: tecnologias inteligentes capazes de gerarem valores através de análises e simulações partindo da extraordinária massa de dados coletadas. Sistemas que identificam padrões e tendências, norteando as decisões estratégicas das empresas. Sistemas como o usado pelo Wal-Mart que identificam os comportamentos dos consumidores.

Para criar estes sistemas, o mercado precisa de Ninjas. Desenvolvedores com conhecimento profundo sobre os fundamentos da computação, conhecedores de técnicas, como por exemplo, inteligência artificial e processamento distribuído. Profissionais capazes de adaptar sua maneira de pensar de acordo com o problema, e escolher as ferramentas corretas para conceber a solução.

Como remover tinta permanente de quadros brancos.

Esta semana a Myfreecomm adquiriu um novo quadro branco para facilitar a organização dos nossos sprints. Com a vinda de novos ninjas, o quadro antigo já não dava conta do recado e decidimos que a equipe precisava de um quadro gigante exclusivo.

O quadro chegou e aguardávamos a instalação do “painel” para inaugurá-lo com diagramas e tag lines (falo delas outro dia). Após algum barulho de furadeira, a instalação foi concluída e para comemorar sua eficiência, o instalador decidiu “testar” o quadro rabiscando um gigantesco “OK” com marcador para retro projetor. Isso mesmo, aquela canetinha para escrever em CDs e transparências. Aquela que marca permanentemente a superfície.

Abobalhados, passamos maus momentos tentando apagar o quadro, até que CesarB encontrou este post que explica como realizar esta tarefa rabiscando por cima com a caneta própria para quadros brancos. A mágica se dá pelo solvente que compõe a tinta destas canetas. Dica muito útil que salvou a pátria!

Dove vs Greenpeace e Responsabilidade Social

Esta semana, o vídeo de publicidade da Dove e o vídeo de resposta do Greenpeace deram o que falar aqui na Myfreecomm. Discutimos sobre Responsabilidade Social e sobre a resposta e a postura da Dove, que então reuniu sua diretoria com o Greenpeace e conjuntamente criaram estratégias para minimizar os problemas levantados. Com esta atitude, estaria a Dove, engajada em responsabilidade social ou simplesmente tentando conter o impacto negativo à sua marca?

Meu amigo Rafael Lima, reuniu diversos argumentos interessantes e registrou em seu podcast sua opinião de que a Dove estaria mais preocupada com a sua marca. Mas eu não concordo exatamente com essa visão. Acho que as duas questões não são necessariamente excludentes, mas complementares.

Acho de grande valor a Unilever, dona da Dove, reconhecer o problema e se engajar em corrigí-lo. Isso deve ser considerado um marco, pois agora, o comprometimento desta corporação poderá ser medido com o esforço explícito de minimizar estes impactos na concepção de novos produtos e no aprimoramento dos produtos atuais. Tudo isso poderá ser observado analisando seus indicadores de sustentabilidade publicados anualmente.

Não estou dizendo que a Unilever é boa e inocente, mas também não digo que seja má ou culpada. É uma empresa que deve gerar lucros. Mas a que preço? É aí que o assunto esquenta, pois a responsabilidade social exige que haja empenho para além das obrigações legais, ou seja, além do senso comum. Mas então quem determina esse “escopo adicional”? As pessoas! Organizadas politicamente em comitês internos nas corporações, sindicatos, ONGs (como o Greenpeace), pesquisadores, etc. É a soma vetorial dessas forças políticas que determinará as prioridades dos esforços em responsabilidade social.

Penso que todo o tema de sustentabilidade é muito novo. E a humanidade ainda possui muitos vícios antigos. Muitos ainda são levados a reproduzir modelos de administração ultrapassados, e acreditam que economia de escala se aplica a tudo. Apesar de toda a instrução dos grandes executivos, falta educação à humanidade em geral (inclusive aos executivos). Observem nossas crianças, que plantam o feijãozinho no algodão aos 3 (três) anos de idade, partilham os brinquedos com os colegas de sala aos 5 (cinco), e passam os outros 13 (treze) anos seguintes sendo treinadas, na selva de pedra, para superar tudo e todos à caminho da universidade, que oferecerá à alguns, instrução de qualidade, lhes proporcionando prestígio e “estabilidade financeira” se conseguirem transformar tudo isso em lucros para seus empregadores.

O altruísmo puro é ideal sim, mas utópico. Na prática, é com um passo de cada vez que as coisas vão efetivamente mudando. Mudar a cultura de bilhões é trabalho para muitas gerações.

Instalando Ruby/Tk no OSX apenas com Macports (sem ActiveTcl)

Tentei sem sucesso instalar o Ruby com suporte à Tcl/Tk através do Macports, mas descobri que existe um bug que ocorre em alguns sistemas.

Para contornar o problema, edite o arquivo de configuração do Macports, provavelmente instalado em /opt/local/etc/macports/macports.conf e desabilite a opção portautoclean alterando seu valor para no (o padrão é yes).

Tente instalar o ruby executando o comando: sudo port install ruby+thread_hooks+tk

Em um Terminal, edite o portfile do ruby com o comando: sudo port ed ruby

Procure o grupo variant tk conflicts mactk e certifique de que ele fique da seguinte forma:

variant tk conflicts mactk {
configure.args-delete --without-tk
configure.args-append --with-tk
configure.args-delete –enable-pthread
depends_lib-append port:tcl \
port:tk
}

Como a instalação anterior falhou e o portautoclen está desativado, as dependências e os sources continuam na máquina. Então acesso o diretório do source do ruby:

cd /opt/local/var/macports/build/
cd _opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_ruby/
cd work/ruby-1.8.7-p22/ext/tk

E gere o Makefile com o comando:

sudo ruby extconf.rb --without-X11 --with-tcl-include=/opt/local/include --with-tk-include=/opt/local/include --with-tk-lib=/opt/local/lib --with-tcl-lib=/opt/local/lib

Delete os resíduos da tentativa de compilação anterior: sudo make clean

Compile o ruby com a extensão para tcl/tk: sudo make

Quando tudo der certo, instale: sudo make install

Para finalizar, teste se tudo está como deveria:

henrique@Azgard:/opt/local/lib$ irb
irb(main):001:0> require ‘tcltklib’
=> true

Tenho certeza de que existem maneiras mais simples de instalar o ruby+tk, mas esse post é resultado de uma daquelas “expedições investigatórias” onde no final você consegue o que quer e volta para o propósito original! ;)

Até eu no Twitter

Até eu no Twitter! Essa semana acabei sucumbindo à influência do Marcelo Guerra e do Rafael Lima, os dois buzz seekers de plantão da Myfreecomm. Decidi instalar o Twitterrific no Mac e ver no que dá o uso do Twitter.

Logo de cara percebi que ter uma boa ferramenta para acompanhar as mensagens é fundamental!

As primeiras impressões são interessantes. O Twitter me parece muito com um IRC onde a minha rede de relacionamentos é o canal, misturado com a interface simples dos Instant Messengers.
Aproveitando a carona do Rafa, também coloquei as mensagens recentes do meu Twitter no sidebar do meu blog.

Recomendo a experiência do Twitter, e quem quiser fique à vontade para me acompanhar!

O dia-à-dia de um Desenvolvedor Ninja

A publicação da vaga para Desenvolvedor Ninja tem dado o que falar por aqui. Temos recebido algumas respostas bem relevantes. Parece que começamos nossa busca com o pé direito. No entanto, alguns candidatos ao clã estão perguntado mais detalhes sobre nossas Missões Ninja.

É difícil definir um padrão para esse tipo de trabalho. Mas recentemente, um de nossos Ninjas, especializado em Linux concluiu uma missão bem interessante.

Com pouca experiência com a Plataforma Win32, ele criou um componente COM, estendendo um componente oferecido pelo Windows para melhorar e simplificar a interação com o Powerbuilder. Suas armas foram:

  1. Milhares de tabs do Firefox com a documentação do MSDN.
  2. VIM como editor de texto para atender seu requinte masoquista.
  3. GCC para compilar o código escrito no Linux para Windows.
  4. O código fonte do Wine 1.0 para compreender melhor a relação entre alguns elementos da arquitetura COM.
  5. Templates em C++ para simplificar o código e evitar repetições.

Mesmo com armas um tanto inusitadas, a chave do sucesso foi a técnica. Sua consciência de que ele não dominava a plataforma o levou a adotar abordagens mais conservadoras e seguras na hora de criar o código. Resultado: Missão cumprida!

Vaga para Desenvolvedor Ninja

Aqui na Myfreecomm estamos desenvolvendo algumas tecnologias bem diferentes e inovadoras! E por isso estamos procuramos um Desenvolvedor Ninja (experiente e versátil) voltado para o desenvolvimento de aplicativos desktop. A aplicação é desenvolvida em Powerbuilder 10 e 11, mas encorajamos o contato de ninjas que dominem outras tecnologias de desenvolvimento de aplicações desktop. Acreditamos que um verdadeiro ninja poderá estudar a plataforma Powerbuilder e dominá-la com velocidade e maestria.

Nossos Ninjas devem ser capazes de:

  • Criar componentes COM para ampliar o suporte do Powerbuilder às necessidades do projeto.
  • Desenvolver módulos que integrarão o aplicativo à serviços web.
  • Projetar e programar a aplicação em camadas visando modularização.
  • Elaborar as melhores estratégias de implementação para reduzir o custo de manutenção do produto.
  • Desenvolver componentes que agregarão recursos à plataforma PowerBuilder.
  • Aprimorar o ambiente de desenvolvimento automatizando processos repetitivos.
  • Implementar testes automatizados do produto nas diversas camadas.

As missões-ninja são realizadas no Centro do Rio de Janeiro, 8h por dia, iniciando entre 9:00h e 10:00h da manhã. Buscamos um Ninja para integrar nosso clã permanentemente.

Necessário experiência comprovada em:

  • Desenvolvimento de aplicações desktop Windows.
  • COM e OLE
  • Processos e Threads
  • Redes
  • OO, MVC, Design Patterns
  • Arquitetura do sistema operacional Windows.
  • Métodos e estratégias de depuração.
  • Conhecer linguagens dinâmicas, preferencialmente Python

Importante saber do que se trata e como funciona:

  • Win32
  • Subversion
  • CRUD
  • RBAC
  • Test Driven Development (TDD)
  • SOA
  • Web Services (SOAP, XML-RPC, REST)

Também praticamos as seguintes tecnologias que é desejável conhecer:

  • C/C++
  • Python
  • NSIS
  • Powerbuilder

Se você se sente capaz de encarar este desafio, envie seu currículo para rh at myfreecomm dot com dot br com o valor pretendido para sua recompensa e uma breve descrição do seu interesse e aptidão pela oportunidade.