Proativa promove curso de Mentoria em Imagine Cup

3 F Y

A Proativa Soluções em Tecnologia, em parceria com o CITi (Centro Integrado de Tecnologia da Informação), irá oferecer durante a jornada de cursos deste início de semestre um curso de Mentoria em Imagine Cup, onde serão apresentadas dicas, técnicas de construção de projeto e de apresentação importantes para a mais importante competição de tecnologia para estudantes, na qual os sócios da Proativa já obtiveram diversos resultados positivos.

Além deste curso, a Proativa também está em parceria com o CITi nos cursos de C# Básico/ASP.NET e Gerenciamento de Projetos com Scrum.

Links:

Mais informações sobre o curso de Mentoria para Imagine Cup

Jornada de cursos do CITi

Inscrições

Anúncios

Embratel Giro – O fim da saga

22 F Y

O pessoal que acompanhou os posts narrando meu primeiro mês usando o Giro, da Embratel (partes da “saga”: 1, 2 e 3), criou um conteúdo que ultrapassou, e muito, as poucas e breves informações que fui capaz de escrever nos posts propriamente ditos. Até agora, já foram 609 comentários nos três posts que escrevi sobre minhas experiências com o Giro, a maioria muito útil e que deve ter ajudado muitas pessoas, que viram os posts num total de quase 22 mil vezes.

Como alguns devem ter percebido, parei de comentar há alguns meses nos posts do Giro. O principal motivo disso foi que cancelei o serviço há cerca de dois meses, e já não vinha usando praticamente desde novembro do ano passado.

Desde o começo, o serviço sempre teve seus pequenos problemas, mas estes foram piorando consideravelmente. No início, era tolerável devido ao preço, e que apesar da lentidão e do nosso famoso “modo inativo”, o custo-benfício ainda era positivo.

Desde setembro de 2009 no entanto, no lugar onde moro (Cidade Universitária, Recife/PE), eu praticamente não conseguia nem conectar, principalmente durante a semana. Quando conectava, ficava a conexão “morta”, sem conseguir fazer nada. Tentei de tudo, troquei os servidores de DNS, botava o telefone em locais mais abertos, fiz promessa pra Santo Expedito, mas nada deu jeito. Como durante o fim de semana ainda vinha funcionando, continuei com o Giro, mas já procurando por alternativas.

Os fatores para eu cancelar de vez o Giro, além da baixa qualidade que o serviço vinha oferecendo nos últimos meses, foram dois: Primeiro, meu telefone (um Nokia 1508i) levou uma queda. Apesar de continuar funcionando, o visor quebrou e não consigo ver nada. Consegui um aparelho idêntico, que minha mãe tinha parado após ter cancelado seu Livre, mas não consegui transferir devido à burocracia imposta pela Embratel para realizar esta transferência. O segundo e decisivo fator foi que ao voltar das férias, o pessoal do local onde moro estava dividindo uma conexão de 8MB do Velox (obrigado por vir pra Recife e gerar concorrência, GVT 😉 ), num preço bem camarada por cabeça, e decidi entrar no bolo…Hoje estou pagando menos do que pagava no Giro e mesmo nos seus piores momentos, a conexão ainda está melhor do que os meus “melhores momentos” com o Giro.

Hoje, pelo menos para quem está no Recife, posso dizer que não recomendo o Giro. Algumas pessoas de outros lugares, como Manaus por exemplo, vem tendo boas experiências com o serviço. Quem está na dúvida, recomendo MUITO a leitura dos comentários dos outros posts, que relatam bem a experiência das pessoas com o Giro da Embratel em várias cidades do Brasil.

A saga completa:

Embratel Giro – Primeiras Impressões – Parte 1 (a escolha)

Embratel Giro – Primeiras Impressões – Parte 2 (As primeiras 24 horas)

Embratel Giro – Primeiras Impressões – parte 3 (O primeiro mês)


Promoção TIM Brasil Infinity – Torça mais ainda para o Brasil ganhar a Copa

13 F Y

Jogo rápido: Recebi uma mensagem em meu TIM hoje divulgando a nova Promoção Brasil Infinity. O esquema é o seguinte: Por R$ 4,90 (Pós-Pago) ou R$ 9,90 (Pré-Pago), você entra na promoção Infinity, de pagar apenas o primeiro minuto de cada ligação (para outros telefones TIM), por R$ 0,25 centavos, durante 3 meses. A Infinity em geral já é uma promoção muito boa, principalmente se você precisa falar muito em ligações DDD.

Apesar da Imagem ser da Brasil Infinity Pós, também tem a opção pra quem é Pré-Pago

Apesar da imagem ser da Brasil Infinity Pós, a promoção também está disponível para quem é Pré-Pago, só muda o valor de adesão.

A maior vantagem desta nova promoção é: Se o Brasil ganhar a Copa do Mundo, a TIM vai estender a promoção até 31/07/2014. É uma boa aposta a se fazer, e virtualmente “de graça” pra quem ainda não está com alguma outra “versão” da Infinity, pois o preço é praticamente idêntico ao que se pagaria por mês para aderir à Infinity por um ano.

Hoje mesmo eu vou botar crédito, entrar na promoção e ter mais um (ótimo…) motivo pra torcer pela Seleção!

PS: O site da promoção do Pré-Pago diz que existe também uma “versão” para aderir por um ano, por R$ 14,90, nesta promoção. Se o Brasil ganhar a Copa no entanto, não tem vantagem nenhuma. Se você acredita na seleção, entra na de 3 meses, se tem maiores dúvidas, entra na de um ano 😉


Wallpaper Rotator

23 F Y

Nas férias, entre o fim de dezembro e o começo de janeiro, estava eu sem nada pra fazer… Havia acabado de fazer um upgrade no meu desktop do Windows XP para o 7, e gostei da funcionalidade de trocar automaticamente o papel de parede do desktop de tempos em tempos. Eu estava com algumas fotos legais para o desktop que eu gostaria de usar em meu netbook, que roda XP e não tenho planos para migrar pro 7.

Daí, procurei algum programa que fizesse isso e não encontrei nada que atendesse minhas necessidades. Queira eu algo bem simples, que eu configurasse, deixasse rodando em background e pudesse esquecer que ele está ali. Alguns até eram simples e tal, mas comiam muita memória enquanto em background, outros eram simplesmente ruins.

Um que chegou perto do que eu queria foi um projeto no CodeProject chamado “Wallpaper Changer for .NET“. Tentei entrar em contato com Arbel Kfir, o criador do projeto, para dar continuidade (estava parado desde 2005), mas não tive sucesso. Como o código é aberto e sem licença, mantive os créditos ao autor original e o usei como base para uma nova ferramenta, que licenciei sob a GPLv2.

O código original tinha algumas gambiarras cabeludas bueirosas from hell, como um mecanismo super bizarro para disparar a troca do papel de parede usando um timer que disparava de 5 em 5 segundos para verificar se já tinha passado do tempo para trocar… Sim, o “caminho normal” seria configurar o timer para disparar no tempo certo para trocar e na ação chamar o método que realiza a troca, mas sei lá o que se passou na cabeça do cidadão (ou que problema cabeludo ele estava tendo pra entrar em desespero) e ele decidiu fazer daquela forma.

Mas enfim, melhorei consideravelmente o código, deixei a interface um pouco mais intuitiva, corrigi alguns bugs e introduzi algumas novas funcionalidades que eu precisava, como persistir a lista de imagens sem que elas tivessem que ficar na pasta do programa.

Wallpaper Rotator

Com este código melhorado, abri um projeto no CodePlex sob o nome de Wallpaper Rotator. Fiz isso só pra contribuir, deixar o código melhorado disponível e uma versão compilada também pronta para ser baixada e executada. Não tinha esperanças de que o projeto fosse ter alguma procura, principalmente porque a funcionalidade principal oferecida pelo programa já é padrão no Windows 7.

Hoje, para minha surpresa, abri o projeto e vi que ele está tendo uma procura bem interessante, chegando a um pico de 33 downloads em uma semana, tendo inclusive sido linkado por alguns blogs e repositórios de software. Me animei e voltei a trabalhar nele, corrigindo alguns bugs que havia deixado para trás e melhorando um pouco mais o código e a interface. Aproveitei e criei um instalador (com o projeto de Setup do Visual Studio foi super fácil) para facilitar para os usuários mais leigos a instalar o programa e colocá-lo automaticamente para rodar quando o sistema inicializar.

Enfim, quem ainda estiver com o XP e quiser ter esta funcionalidade do Seven, recomendo ir na página do Projeto e baixar a versão mais recente. Funciona muito bem, é bem simples e ocupa praticamente nada de memória (O programa tem 1,5MB, e ocupa entre 800KB e 2MB de RAM quando está rodando em background… consumo de processador é completamente desprezível).

Para quem quiser deixar o XP com ainda mais cara de Windows 7, eu recomendo a leitura deste post (http://bhandler.spaces.live.com/blog/cns!70f64bc910c9f7f3!5105.entry), que recomendou meu projeto como uma das ferramentas que ajuda a deixar o XP parecido com o Seven.

Dúvidas, reportar bugs, quer contribuir de alguma forma? Entre em contato comigo aqui nos comentários ou na página do projeto.


Prêmio Nacional da Interoperabilidade

30 F Y

Depois do sucesso do Desafio de Interoperabilidade proposto pela Microsoft aqui na Campus Party 2010, gostaria de lembrar vocês sobre o Prêmio Nacional da Interoperabilidade.

Esta competição realizada pelo Senai com apoio da Microsoft, tem como objetivo difundir as possibilidades de interoperabilidade de sistemas e ferramentas da Microsoft com as ferramentas e sistemas providos por outras empresas ou pessoas.

O Prêmio é focado em estudantes, e será tipo uma prévia da Imagine Cup, nos moldes do XNA Challenge, mas focado na categoria de Interoperabilidade. O tema, as 8 metas do milênio, é o mesmo da competição mundial. O vencedor NÃO está automaticamente classificado para a Imagine Cup, mas a competição é de grande ajuda para validar a idéia e conseguir aprimorar o projeto antes de submeter para a Imagine Cup.

A premiação também é muito interessante, um netbook por membro da equipe, mas em comparação com a experiência e conhecimentos adquiridos durante a realização do projeto, não é nada. Vale realmente muito a pena participar, principalmente se você tem como objetivo participar e ganhar de uma Imagine Cup.

Pra quem não sabe, atualmente, o Brasil é o campeão mundial da categoria Interoperability Award da Imagine Cup. Em 2009, eu e meus amigos da Proativa levamos o ProLearning para o Egito e ganhamos. Não podemos participar este ano por causa disso mas queremos que o Brasil mantenha o título. Uma iniciativa como esta ajuda muito a preparar o pessoal, não perca essa chance!

Por último, fazendo propaganda… Não posso participar como competidor, mas posso ser mentor de qualquer equipe nesta categoria. Se você tiver alguma idéia, entre em contato comigo para podermos trabalhar juntos e tentar levar sua idéia para o Prêmio de Interoperabilidade e posteriormente para a Imagine Cup 2010, na Polônia!


Testes de Primalidade: Uma Visão Computacional

3 F Y

Quem me acompanha de perto sabe que no último dia 14 de dezembro apresentei meu Trabalho de Graduação (TG), a última etapa para a conclusão do curso. Como gosto muito de teoria e já havia feito uma Iniciação Científica estudando testes de primalidade, resolvi explorar este tema no TG. No trabalho, dou uma “pincelada” em vários testes que foram utilizados ao longo da história, e finalmente chego no AKS e suas melhorias. Para quem não está acostumado com o tema, o AKS é o primeiro teste de primalidade determinístico e de tempo polinomial, desenvolvido por pesquisadores indianos em 2001.

Ele disse provavelmente!

Ah, qual é? Teoria pode ser legal!

Não irei neste post escrever sobre os testes, para isso, quem tiver interesse, pode ler meu trabalho. Aqui irei apenas descrever sobre o que falei no trabalho e fazer uma pequena propaganda da simples ferramenta que desenvolvi e disponibilizei online com código-aberto, e que procuro colaboradores com interesse na área.

O documento que pode ser acessado pelo link acima, inicia-se com uma introdução ao conceito dos números primos e também um breve histórico do tema. Depois, apresento noções básicas de alguns tópicos necessários para a compreensão do trabalho, como aritmética modular e complexidade computacional.

Com o leitor preparado, inicio a exposição dos testes de primalidade. Escolhi a ordem cronológica para organizar os testes, assim, comecei da simples divisão por tentativa, que aprendemos ainda no ensino fundamental (tentar dividir o número sendo testado até encontrar um divisor. Se não encontrarmos um divisor, então o número é primo), até o AKS. Os testes abordados no trabalho são:

  • Divisão por Tentativa
  • Crivo de Eratóstenes
  • Teste de Primalidade de Fermat
  • Teste de Lucas-Lehmer
  • Teste de Solovay-Strassen
  • Teste de Miller-Rabin
  • Teste de Baillie, Pomerance, Selfridge e Wagstaff (Baillie-PSW ou B-PSW)
  • Teste de Adleman-Pomerance-Rumely (APR)
  • Elliptic Curve Primality Proving (ECPP)
  • Algoritmo AKS

Com exceção de APR e ECPP, sobre os quais escrevi muito pouco, todos os outros testes são descritos em suas seções através de uma visão geral de seu funcionamento seguidos de informações sobre sua complexidade computacional. O AKS recebeu um capítulo inteiro, que trata em detalhes do algoritmo e de seu custo, além da descrição de algumas das melhorias propostas desde sua divulgação.

Tela de Resultados da Ferramenta de Comparação. Teste para um número não muito grande (2345678917), mostrando como a Divisão por Tentativa é demorada em relação a outros testes.

Por fim, escrevi uma pequena ferramenta, hospedada no CodePlex, com a implementação de vários testes. Desenvolvida em C#, ela permite ao usuário executar diferentes testes de primalidade e comparar sua performance através de um gráfico. A ferramenta pode ser útil para facilitar o entendimento de alunos em assuntos da Matemática Discreta e da Complexidade Computacional.

Minha intenção com esta ferramenta é o uso puramente didático. Performance decididamente não é o objetivo, pois desejo manter o código limpo, de fácil leitura para alunos com pouco conhecimento de programação, provavelmente ainda no primeiro ano de graduação.

Utilizei alguns padrões de projeto como Template Method, também de forma que o código ficasse limpo, isolando bem o que é realmente a implementação do algoritmo de outras operações realizadas para o funcionamento do programa.

Por enquanto, a ferramenta ainda tem muito o que melhorar. Pretendo mudar a maneira pela qual os testes são chamados, para evitar que um resultado em cache influencie no tempo de cálculo de outro resultado. Irei também dar a opção de uso de threads, para evitar que o programa pareça travado enquanto um teste mais longo é executado (Isto ainda não foi incluido pois, apesar de interessante para o usuário, o tempo de execução dos testes pode ser influenciado ao utilizar threads). Pretendo incluir ainda outros testes, inclusive versões que façam uso de multiprocessamento quando possível (o comando for paralelo do .NET Framework 4 vai ser uma mão na roda quando eu for fazer isso!).

É isso… apresentei o TG, acabei o curso! Que venha o mestrado!

Leu o documento e achou um erro? Tem alguma dúvida? Quer colaborar no desenvolvimento da ferramenta? Entre em contato comigo, vou tentar responder o mais rápido que puder.


Pesquisa de Imagens do Bing se garantindo

16 F Y

Já imaginou fazer uma busca de imagens e só receber uma página de respostas? Até agora, isso significava que a busca retornou poucos resultados. Quando você pesquisa, por exemplo, no Google Images, e obtém uma quantidade razoável de resultados, eles vem espalhados por várias e várias páginas. Cada vez que você quer ver mais resultados, tem que abrir a nova página, e carregar tudo de novo.

O Bing, nova ferramenta de busca da Microsoft, trouxe uma mudança significativa na sua busca de imagens (http://www.bing.com/images). É apresentada apenas uma página ao usuário, contendo os resultados em um painel com rolagem vertical. O comportamento natural do usuário, ao precisar de mais imagens, é rolar a barra para baixo, e na medida em que o usuário desce para ver mais resultados, o Bing requisita as próximas imagens via Ajax. O resultado é uma interface que ajuda MUITO, e de várias formas o usuário:

  1. Não tem que ficar mudando de página, pedindo mais imagens. É só descer a barra e mais imagens virão;
  2. Todas as imagens que o usuário já viu continuam lá. Não é necessário ficar voltando de página para ver alguma imagem que você gostou mas passou;
  3. Bom para conexões lentas. Quando você precisa de mais resultados, ele só requisita as imagens, não tendo que recarregar toda a página. Em minha conexãozinha de 153kbps, isso faz uma diferença absurda!
  4. Ao clicar em uma imagem, a página de origem abre no painel. Enquanto isso, os outros resultados da busca ficam em um painel lateral, permitindo que o usuário continue vendo todos os resultados, na mesma janela.

Além disso, a interface é suficientemente limpa, e existem vários modos de visualização dos resultados. Pode-se alterar a visualização para 7, 5 ou 4 imagens por linha, sem recarregar a página, bem rápido. A visualização padrão ajuda no visual clean do site, pois são apenas exibidas as imagens, sem nenhuma informação como o site de origem, tamanho e dimensões do arquivo. Basta passar o mouse em cima da imagem que estas informações aparecem, além de ser exibida a imagem um pouco maior.

O Google Images ainda oferece mais resultados que o Bing Images, mas até o momento, as buscas que fiz no Bing sempre me retornaram uma imagem que atendia minhas necessidades. Ele é minha busca de imagens padrão no momento. Agora é esperar para ver qual será a reação do Google!