Posts de June, 2009

[Rodolfo Carvalho] Pós-PythOnCampus Gama Filho Piedade no Outback Norte Shopping

Thursday, June 11th, 2009

Esse post está bastante atrasado… já postei sobre a 3ª PythOnCampus sem antes ter publicado as fotos da 2ª PythOnCampus.

Na verdade não tenho fotos do evento, mas sim do pós-evento. Fomos almoçar no Outback do Norte Shopping.

Várias horas de descontração, comida e bate-papo.

[Rodolfo Carvalho] PythOnCampus UVA Cabo Frio

Thursday, June 11th, 2009

No último sábado (06/06/2009) a comunidade PythOnRio realizou mais uma edição do PythOnCampus, evento itinerante que visita as universidades.
Menos de um mês desde a edição da Universidade Gama Filho campus Piedade, visitamos a Universidade Veiga de Almeida em Cabo Frio, onde fomos muito bem recebidos.

Realizamos palestras, e um mini-curso de Python. Este deixou os alunos sedentos por um curso de extensão ou alguma outra forma de disseminar a linguagem na faculdade.
Todo o evento foi focado em como os alunos podem e devem correr atrás das oportunidades, fazer o mercado acontecer, como a mentalidade em voga pode e deve ser alterada. E os alunos tem como exemplo a ser seguido o seu coordenador, o Fábio Licht.

Mais do que promover um linguagem, estamos lá para promover um espírito de colaboração, uma idéia de comunidade, de como podemos ter academia e mercado sintonizados, de forma sempre a valorizar o profissional como pessoa.

São as práticas, os valores, os princípios, que nos fazem nos deslocar do Rio para Cabo Frio num sabadão para ver o brilho nos olhos dos alunos que compareceram ao evento.

Foram horas super agradáveis na companhia de pessoas excelentes. Tirei algumas fotos para registrar o evento e o pós-evento numa churrascaria em Cabo Frio.

Já estamos nos preparando para novos destinos, fiquem atentos para saber sobre o próximo PythOnCampus.

Se você é aluno ou professor de alguma instituição de ensino e quer nossa presença, entre em contato.

Não deixem de acompanhar o site oficial da comunidade PythOnRio, e o grupo de emails da PythOnRio.

Fotos paisagísticas do campus da UVA Cabo Frio:

Universidade Veiga de Almeida - campus Cabo Frio

[Rodolfo Carvalho] 20 edições de Coding Dojo - comemoração com direito a bolo

Thursday, June 11th, 2009

É com grande satisfação que anúncio que o Coding Dojo Rio é um sucesso.
Depois de seis meses temos um grupo consolidado, que se encontra todas as quartas para programar, trocar conhecimento, se divertir.

Para quem não acreditou, cá estamos nós, comemorando as pequenas conquistas.

E ontem não só comemoramos nosso vigésimo encontro como também o aniversário do Cláudio Berrondo. Tivemos 9 pessoas presentes, um papo muito bom sobre as entranhas do Python, bolo, … sim, tivemos bolo!

Em breve vamos liberar um post mais detalhado no blog oficial do Dojo, mas por enquanto já adianto as fotos de ontem:

[Rafael Biriba] Wordpress 2.7.1 com Syntax Highlight

Thursday, June 11th, 2009
Plugin: Wp-Syntax

Plugin: WP-Syntax - No exemplo: Linguagem Ruby

Há bastante tempo estive a procura de um plugin para fazer a “Syntax Highlight” dos meus códigos no blog. Parece algo simples, mas na verdade foi bem difícil de arrumar. Não é só instalar um plugin e utiliza-lo no blog, é bem pior que isso.

Pra começar que esse editor de texto do wordpress, TinyMCE, é cheio de “removedor de tags” (strip tag), o que dificulta e muito a inserção de códigos especiais. Vamos para os problemas e suas soluções:

Primeiramente, o plugin selecionado para o Syntax Highlight foi o: WP-Syntax ( http://wordpress.org/extend/plugins/wp-syntax/ ). Para utiliza-lo basta colocar as tags <pre lang=”” line=”” escaped=””> e depois </pre>.

O escaped por padrão é falso, não sendo necessário colocar. Serve para substituir os elementos codificados em html. Em outras palavras, quando no código tiver elementos como &lt; (>), ou &amp; (&),  estes são transformados automáticamente. Logo abaixo você entenderá a necessidade de colocar o escaped.

O line por padrão é falso, não sendo necessário colocar. Serve para dizer qual a numeração inicial que você deseja.

O lang é o atributo principal, onde definimos qual a linguagem que iremos utilizar, para que seja marcada corretamente. Você pode usar as seguintes linguagens: actionscript, actionscript3, asp, bash, c, cobol, cpp, csharp, css, delphi, html4strict, java, java5, javascriptmysqlperl, php, python, rails, ruby, sql, vim, whois, xml, ( Lista completa em http://wordpress.org/extend/plugins/wp-syntax/other_notes/ )

Porém o editor de texto do wordpress, não permite o atributos na tag pre e com isso seria impossível utilizar o plugin corretamente. Depois de muitas pesquisas e testes, descobri um plugin ótimo que serve justamente para “habilitar” tags e atributos que o editor não permite. Este plugin é o TinyMCE Valid Elements ( http://wordpress.org/extend/plugins/tinymce-valid-elements/ ). Com uma interface de configuração extremamente simples, você pode adicionar um elemento e depois os seus atributos válidos.

Bom, o primeiro problema já está solucionado. Depois de adicionar o elemento pre e os seus atributos line, escaped e lang, vamos escrever nosso primeiro código.

Vá ao editor de HTML do wordpress e adicione <pre lang=”ruby”>class Example</pre> isso criará uma saída colorida para o código ruby sem numeração.

Agora, se você tentar criar uma saída numerada e com várias linhas, encontrará 2 problemas:
1) O editor do wordpress remove as tags <? ?> caso você precise demonstrar um script php, por exemplo.
2) O css do plugin tem alguns parâmetros que distorce um pouco a tabela, fazendo com que ela seja maior do que o necessário.

Veremos isso na prática. Crie o código abaixo no editor HTML do wordpress:

<pre lang=”php” line=”1″>
<?php

echo “Hello World !”;
?>

</pre>

O editor do wordpress remove tudo que estiver dentro das tags <? ?>, então para resolver o problema 1, basta trocar a < por &lt; e > por &gt; , sendo assim o código ficará assim:

<pre lang=”php” line=”1″ escaped=”true”>
&lt;?php

echo “Hello World !”;
?&gt;

</pre>

Conforme eu expliquei acima, foi necessário incluir o escaped=”true” para que os elementos html sejam devidamente transformados. Neste caso para que os elementos < > sejam exibidos corretamente.

A Saída do código acima firá assim:

exemplo-wp-syntax-erro-css

O problema 2 é exatamente o tamanho que a tabela ficou! O css faz a tabela se estender até o fim da página, tornando ela exageradamente grande ! Vamos para a correção:

Abra o arquivo \wp-content\plugins\wp-syntax\wp-syntax.css e faça a seguinte alteração, logo no primeiro elemento .wp-syntax:

.wp_syntax {
color: #100;
background-color: #f9f9f9;
border: 1px solid silver;
margin: 0 0 1.5em 0;
overflow: auto;
}

Os parametros de background-color e border que estão distorcendo a tabela. Basta remover as linhas em negrito OU caso não queira deletar, basta comentar este trecho do código com (/* e */). Ao final salve o arquivo !

Agora ao executar o nosso código de teste, a saída será:

1
2
3
<?php
echo "Hello World !";
?>

Bom, acho que isto é tudo ! Qualquer dúvida é só perguntar ! ;)

Detalhes: Caso você venha atualizar o plugin wp-syntax, o css será substituido pelo padrão. Então você terá que alterar o css toda vez que atualizar o plugin, ou então deixe tabela distorcida mesmo… :)

[Rafael Biriba] Globo.com: Aberta as inscrições para o programa de estágio

Monday, June 8th, 2009

 

http://www.globo.com/estag

http://www.globo.com/estag

O programa de estágio da Globo.com está aberto e as inscrições poderam ser feitas até dia 14 de junho.

Não perca essa oportunidade… Inscreva-se pelo site http://www.globo.com/estag

Etapas do processo seletivo: ( 2009 )
- Inscrições: 01 a 14/junho
- Prova On-line: 16 a 22/junho
- Entrevista Coletiva: 24/junho a 01/julho
- Painel: 09 a 16/julho
- Entrevista com o Gestor: 13 a 21/julho
- Admissão: 03/agosto

Informações adicionais:
Quem pode participar?
Estudantes matriculados em cursos de nível superior, com previsão de formatura para Julho de 2010 a Julho de 2011, compatíveis com as áreas/vagas existentes, disponíveis apenas para a cidade do Rio de Janeiro.

Existem vagas para que áreas?
Vagas de estágio para os seguintes cursos:
Administração, Comunicação Social (Publicidade e Propaganda, Jornalismo, Multimídia, Rádio e TV, Relações Públicas), Desenho Industrial, Estatística, Ciências Contábeis, Engenharia de Produção e todos os cursos da área de Tecnologia (Informática, Análise de Sistemas, Processamento de Dados, Engenharia da Computação/Telecomunicações/Sistemas e etc).

Bom, boa sorte a todos que irão se candidatar…  Lembre-se que conhecimentos não podem ser comprados, tem que ser obtidos, então corram atrás disso. Posso apenas dizer que é um lugar ótimo para se estagiar e obter experiência. Fora que é uma empresa grande de tecnologia que só tem a crescer com o passar dos anos.

Dica: Se você tiver um tempinho recomendo dar uma olhada na metodologia ágil Scrum (Adotada pela Globo.com). Na entrevista coletiva (Área de Tecnologia) que participei, fizemos várias tarefas e depois que eu fui descobrir que se tratava de Scrum. Então acho uma boa se você chegar lá com algumas noções básicas. Isto é, se as dinâmicas forem baseadas em Scrum de novo ! :)

[Emerson Macedo] Afinal, o que seria um profissional sênior?

Sunday, June 7th, 2009

Certo dia um amigo com alguns bons anos de esperiência e trabalhando na função de pleno, achou que era a hora de mudar de cargo para sênior. Chegando no seu gerênte, recebeu a seguinte resposta: “fulano, não posso te passar pra sênior porque você não conhece o framework xyz e a lingaugem abc“. Esse meu amigo chegou perto de mim bem cabisbaixo e me contou o que tinha acontecido. Simplesmente achei o fato ridículo. Talvez ele realmente não fosse o momento de se tornar sênior (i.e. em relação ao cargo), mas esse argumento realmente não cola.

Como já mencionei em outros posts nesse mesmo blog, nossa área de desenvolvimento de software/informática está cheia de termos/nomenclatura que se confundem facilmente (e.g. as discussões no GUJ sobre DTO). Mais uma vez, falarei sobre um deles: a classificação júnior, pleno, sênior.

Dando uma passeada pelos sites de emprego de informática, é fácil ver vagas para analista de sistemas / programador / desenvolvedor júnior, pleno e sênior, etc. Acontece que a maioria das pessoas (inclusive os gerêntes de TI) não sabem muito bem fazer essa distinção entre os níveis, causando uma grande confusão na cabeça de todo mundo, inclusive na hora de negociar o cascalho. Portanto, vamos começar pelo básico …

Master Yoda

Não sou uma pessoa entendida de RH, muito menos sei a história sobre como começou essa nomenclatura de júnior, pleno e sênior. Mas como trabalho na área de TI fazem 12 anos e já passei por um bocado de empresas, acho que posso dar meu pitaco sobre o assunto. As melhores definições que consegui na internet para sênior foram: ancião, velho, pessoa com mais experiência em alguma profissão. De cara tem alguma coisa estranha na resposta que o tal gerente deu pro meu amigo, mas não para por ai.

No início da minha carreira, nas empresas onde passei, geralmente o cara sênior era um cara com mais experiência, uma pessoa que viveu mais situações, uma pessoa mais madura (não necessáriamente velha ou idosa). Por muitas vezes, essa pessoa não conhecia uma ferramenta ou outra de trabalho que eu conhecia, mas isso de maneira alguma me colocava no mesmo nível daquele profissional, pois tomando conhecimento da existência daquela ferramenta e utilizando um pouco do seu tempo, a tal ferramenta estava absorvida por este.

E o que eu quero dizer com isso? Eu quero dizer que se você começou agora, mesmo que você saiba python, ruby, java, erlang, haskell, xpto, brainfuck, você é Júnior ainda. Lógico que é ótimo saber diversas ferramentas e eu recomendo a todos estudar para isso. O mesmo princípio se aplica ao profissional sênior. Fatalmente tem algumas coisas que lhe fogem ao conhecimento, porém a diferência é que esse naturalmente conhece muitas ferramentas  devido a sua experiência ao longo dos anos. Não foi simplesmente um livro que leu ou um tutorial da internet que fez, mas projetos reais que participou. Um sênior deve saber debater com seus superiores sem medo, com argumentações bem formuladas, sabendo exatamente a sua posição, mas sem muito se intimidar quando conversa com outro profissional acima na hierarquia. Deve chamar a responsabilidade para si em momentos críticos, deve ajudar e ensinar os demais simplesmente porque isso é de sua responsabilidade.

Saber ou não uma determinada linguagem ou ferramenta não faz necessáriamente de você nem júnior nem sênior, pois isso as vezes depende da sua trajetória de carreira. Eu por exemplo não sei nada de ABAP, pois nunca trabalhei com SAP ou algo que use essa linguagem. Talvez você esteja aprendendo Java nesse momento mas tem 10 anos de experiência com C/C++ e tem ótimas práticas de programação. Em fim, é bem relativo.

Pra finalizar, certa vez um amigo me disse que sênioridade é algo como um estado de espírito. Vou até um pouco além disso. Acredito que sêrionidade é um estado avançado de profissionalismo aliado a maturidade alcançada ao longo do tempo.

[Tiago Motta] DynamicStream garantindo compatibilidade com flash 9

Saturday, June 6th, 2009

Ao implementar o DynamicStream em seu flash, teoricamente pararia de funcionar em clientes com a versão 9, pois algumas das classes e métodos necessários para seu uso só estão disponíveis apartir da versão 10.

Para evitar isso a Adobe disponibilizou um artigo mostrando como integrar o DynamicStream em um player antigo, para que só utilize o recurso novo quando o plugin do cliente estiver na versão 10, garantindo assim a compatibilidade. Este artigo possui até mesmo um exemplo, que embora funcione sem problemas em flash 9, quando integrado em outros projetos não funciona.

O problema é um bug na classe de referência que a Adobe oferece em diversos de seus artigos sobre essa funcionalidade. O erro fica evidente quando utilizamos um flash player debugger de versão 9 sobre o swf gerado, até mesmo os de exemplo da empresa.

verifyError: Error #1053: Illegal override of play2 in DynamicStream.

Esse erro ocorre porque a classe DynamicStream de referência sobrepõe o método play2 de NetStream apenas para anulá-lo. Com isso o plugin fica obrigado a verificar a existência do método play2 em NetStream e acaba dando o erro, pois tal método só está disponível apartir da versão 10.

Removendo esse método da classe DynamicStream de referência, tudo passa a funcionar, pois o acesso aos recursos existentes nas versões maiores ficam restritos ao conteudo dos métodos, que só serão avaliados em tempo de execução.

Não fosse o Bruno FMS me dar a dica do flash player debugger, perderia mais um bom tempo testando diversos artíficios para tentar fazer o código rodar em flash 9.

[Tiago Motta] Iptable para testar fallback para rtmpt no flash

Tuesday, June 2nd, 2009

Para testar se o fallback do seu flash player está funcionando corretamente, e acessando o flash media server pela porta 80 com rtmpt, basta configurar seu iptables para rejeitar ou deletar os pacotes da porta 1935, que é a padrão do FMS:

sudo iptables -A OUTPUT -p tcp --dport 1935 -j REJECT

ou

sudo iptables -A OUTPUT -p tcp --dport 1935 -j DROP

Sem esquecer de ao finalizar seus testes limpar o iptables para continuar seus testes:

sudo iptables -F