Programando nas nuvens
por
Claro que muitos ao lerem esse título vão pensar que estou programando dentro de um avião. Sim, já programei muita coisa nas nuvens literalmente, mas minha intenção agora é trabalhar figuramente nas nuvens: cloud computing.
Há algum tempo tenho me envolvido em arquitetura de aplicações enterprise. E como nunca poderia deixar de ser, meu site é a minha encubadora de idéias. E sim, estou muito satisfeito com ele, com cada linha de código que escrevi, e tudo mais. Mas um bom profissional nunca fica acomodado a ponto de achar que nada pode evoluir, então lá fui eu achar mais sarna para me coçar.
Faz algum tempo que venho acompanhando os trabalhos do Amazon EC2, GAE e outros mais, além do projeto Terracotta na qual eu utilizo em um dos meus projetos de gaveta, o KAS. Enfim, não sou muito de acompanhar vapores nem buzzwords, mas lendo a documentação do GAE e relatos do pessoal nos fóruns pela rede, não me contive em participar dessa onda toda. Finalmente decidi colocar meu blog nas nuvens.
A idéia inicial é migrar meu blog de vraptor 2.6 o 3, migrar toda a base de posts para lá e lançar o projeto final como opensource provavelmente no Github. Aliás faz algum tempo que quero muito publicar os fontes aqui da minha plataforma de blog, mas a falta de tempo sempre me impede. E finalmente hospedar o blog na infrastrutura do GAE.
Já fiz uns testes iniciais, e por enquanto estou bem satisfeito. A documentação é bem simples e direta, o interface de administração com bons recursos.
E conforme eu for fazendo mais testes publico aqui no blog. Vamos ver se agora realmente consigo trabalhar nas nuvens :).
Anos atrás: E a idade vem chegando... (2005).
Sun Tech Days 2009
por
E esse ano de forma alguma eu posso perder o Sun Tech Days, versão Brasil. Já faz algum tempo que a Sun está um pouco mal das pernas, então acho que será o último evento que veremos da mãe do Java.
Alguns dizem que o Sun Tech Days decaiu há alguns anos, mas de qualquer forma é sempre bom rever meus amigos da Sun como o Roger Brinkley e o Phill, que conheci há algum tempo no FISL 2007 em Porto Alegre, quando o evento ainda era na FIERGS. Mas o melhor é que esse ano teremos ninguém mais que James Gosling, o pai do Java. Conforme a agenda haverá um keynote com ele logo após a abertura do evento. Não saio de lá enquanto não tirar uma foto, hahaha. Eu até havia relamando que em eventos anteriores o Gosling não veio, né?
Infelizmente esse ano não terei a companhia do Dilnei, que estará trabalhando em POA em um projeto bacana, e sempre me acompanha nesses eventos. Mas certamente Eliseu e eu traremos uns brindes para ti, hahahahahaha. Esse ano vamos Eliseu e eu, que aliás será um voo com um alto nivel de tecnologia, arquitetura J2EE e essas coisas mais aí que amamos programar.
Mas o que mais me incentivou ir são as sessões sobre Java EE 6, servlets 3.0 além de algumas sessões sobre Glassfish, Grizzly, SSO e mais um monte de siglas que arquitetos adoram. E saindo um pouco do "enterprise" teremos uma sessão sobre o futuro da plataforma Java com o JDK 7 e também sobre Java FX, na qual tentei o ano todo achar tempo de estudar, mas sem sucesso.
Eu ainda não sei se terão eventos extras pós sessões, mas quero ainda fazer uma visita ao pessoal da Caelum, na qual faz algum tempo venho interagindo por causa do Vraptor3, framework na qual uso intensamente nos projetos da empresa e que em algumas vezes tenho colaborado.
Enfim, vamos ver como estará esse último no de Sun Tech Days e ano pré Oracle Open World. Mas as minhas espectativas estão muito boas, principalmente quanto ao networking com a galera da Sun.
Anos atrás: Extremos (2003).
Meu novo projeto: technorati4j
por
Há algum tempo estou estudando para a certificação de arquiteto Java (a SCEA). E um dos itens a estudar são webservices.
Já que é sempre bom começar pelo mais fácil, optei por seguir pelos restful webservices, e depois aprofundar nos serviços SOA e afins. Então nada mais simples que implementar uma das poucas coisas que não tem no Java: um projeto para acesso as APIs do Technorati. A ideia começou a ganhar coragem quando precisei de acesso a essas APIs para meu site, e não havia ainda implementação em Java.
Para quem não conhece o Technorati pode consultar um simples artigo na Wikipedia aqui ou visitar o site aqui. Basicamente é um buscador/centralizador de blogs, muito usado na tal blogosfera. Os serviços em nuvem do Technorati permite fazer buscas por tags, carregar informações sobre os blogs ou autores, navegar nas tags mais usadas no dia, e por aí vai. A documentação é bem ampla e pode ser vista aqui.
O projeto está em fase embrionária, porém já implementa todas as funcionalidades disponíveis nas nuvens do Technorati Webservices. Os códigos são bem simples e diretos, estão totalmente documentados via Javadc, e ainda incluem planos de teste via JUnit. Quem quiser baixar os fontes do projeto pode acessar o SVN do projeto no Google Code ou acessar o site do projeto e divertir-se. Para quem usa o Eclipse, o projeto já vem montado automaticamente.
Pelo fato da própria estrutura do retorno das APIs do Technorat
A licença do projeto é Apache License 2.0; ou seja, você pode baixar, alterar, redistribuir... tudo a vontade sem precisar de minha permissão :).
Diário de uma migração
por
Como vocês devem ter notado, mudei totalmente o engine do meu site. Ele é escrito por mim em Java EE, e já havia algum tempo que eu estava com um esboço das mudanças, porém estava sem tempo por causa dos estudos para a SCEA. Mas um dia desses resolvi meter a mão na massa, e compartilho com vocês aqui uma série de posts na qual explico como tudo foi feito.
A primeira das mudanças que eu precisava era esquecer o legado. Meu site existe desde 2000, e desde lá venho fazendo apenas updates. Então era necessário esquecer tudo que eu tinha antes, fazer algo do zero. Eu estava cansado daqueles URLs malucos do site, que para você ver um post era necessário escrever www.otavio.com.br/weblogPostShow.do?id=500. Além disso eu não queria mais expor os IDs dos posts, e facilitar a digitação. Realmente é um saco ficar fazendo upper e lower case para digitar um endereço.
Uma questão importante era performance. Sempre achei que meu site não era muito visitado, mas olhando aos logs do servidor percebi uma média de mil visitas por dia. Então eu precisava do site rápido, e o antigo me parecia as vezes estar um pouco lento. Como o servidor de aplicações não fica na mesma máquina do banco de dados, eu precisava até mesmo pensar no overread de dados na rede, otimizar as consultas, e por aí vai. Notei que precisava largar o MySQL em prol de um banco mais robusto, que permitisse certas funcionalidades para evitar o extenso tráfego de rede.
De uns tempos para cá o número de spams nos comentários cresceu drasticamente, então eu notei que precisava não apenas filtrar os comentários, mas também bloquear algumas redes de spammers. Filtrar o conteúdo que o usuário digita nos campos de comentário é muito importante, não apenas quanto a palavras de baixo calão, mas também quanto a ataques de código malicioso. E spammers acabam consumindo banda e deixando o site lento.
Optei por manter a estrutura interna do site ainda com a dupla Hibernate e Spring, porém havia duas coisas que eu era enfático em trocar: o controller que estava a cargo do Struts Action, e o banco de dados que era MySQL. O Struts é um bom frameworks, mas estava muito velho, e eu sentia a necessidade de trocar para algo mais inteligente e que permitisse fazer as coisas em poucas linhas de código. Fiz testes com vários MVC dentre eles Spring Web MVC, JBoss Seam e Vraptor; sendo que então optei por usar esse último. E com o banco de dados não havia muito o que duvidar: minha escolha era PostgreSQL (valeu Elizeu).
Além disso havia a necessidade de reescrever o core da aplicação, que basicamente é um .jar que contém uma série de extensões para os diversos frameworks que uso que permite que eu trabalhe com os códigos de forma mais simples.
Em breve escrevo os outros artigos dessa saga toda e atualizo esse aqui com o link dos demais.
Anos atrás: Por que eu amo o Orkut? (2008), Pq tudo tem uma pequena explicação?! (2006).
Baixando o nível de uma comunidade
por
Como todo nerd estou cadastrado em alguns fóruns gringos como Hibernate.org, The Server Side e Sun Develpers. Aqui no Brasil participo basicamente de dois: Contato Radar (de aviação) e do GUJ (sobre Java).
Não sei se é por causa dessa informalidade da TI, mas realmente o nível da discussão nesse último fórum caiu drasticamente. De pelo menos 500 tópicos criados por mês, posso dizer que dá para aproveitar no máximo uns 3 e olhe lá. É uma série de usuários que perguntam coisas banais, outros que perguntam coisas sem pesquisar antes, e até mesmo os pseudo-intelectuais com suas filosofias magníficas que deixam até o satanás apavorado.
Um dos caras que eu mais admiro na TI, o Leandro da Professional IT, já havia contado uma história parecida. Um dos exemplos da "falta de massa cinzenta" da galera visto aqui. Notem o teor dos posts e o linguajar no básico estilo miguxês, além de uma série de posts dispensáveis e sem conteúdo. É bem aquele tipo de situação que você "perdeu a chance de ficar calado". Se não sabe responder, não vai ajudar, ou vai falar merda, é melhor ficar quieto. Simplesmente cansei desse tipo de conversa, e como sempre digo, se é para ter conversas meia boca, prefiro fazer algo mais interessante.
Um dos fóruns que mais respeito é o Contato Radar, fórum de aviação onde aconselho para quem gosta. Nota-se o nível mais elevado das conversas, das discussões, e até mesmo quando a galera toca uma lenha na fogueira.
Eu sempre achei que o pessoal da TI era muito inteligente, me orgulhava em ser uma dessas pessoas. Mas infelizmente com essa maldita inclusão digital e informalidade da TI, vejo a cada dia decair o nível. Infelizmente um ser desses vota!
[update] Parece que mais alguém já teve a mesma idéia que eu aqui. [/update]
Anos atrás: Apenas dois neurônios são necessários (2008), Lovely (2007).
Será que funcionou
por
Se você está lendo esse texto é porque funcionou. Hoje na madrugada fiz a migração do meu site para um ambiente fora de casa, depois de muitos anos mantendo o site hospedado lá em casa
Os motivos são basicamente eu não ter mais tempo de ficar controlando um servidor, preparando rotinas de backups, regras de segurança, atualização da máquina, enfim, manter toda essa estrutura que ninguém parece notar, mas que está por trás de um simples site.
Uma outra migração que vocês devem ter notado foi da plataforma de CMS do site, que agora está um pouco mais robusta e elegante que a anterior. Fiz uma reescrita total usando novas tecnologias e um elegante sistema de user-friendly URLs, substituindo os feios endereços www.otavio.com.br/weblogPost.do?id=100 por www.otavio.com.br/testando-site. Além disso o site ficou mais rápido para acessar. E já aviso de contramão que não estou usando wordpress e nenhum CMS feito nos PHPs da vida. Meu site é programado em Java, e por eu mesmo :)
Ainda há muito o que fazer, e tão logo eu consiga terminar tudo, publico os fontes do site e escrevo um guia do que foi feito.
A propósito, será que devo colocar um selo de "beta" assim como o Google faz?
Anos atrás: Mascotinho (2008), Up in the sky II (2005).
