0

Dica JMX

-

A Cada dia que passa eu me surpreendo com uma nova “ferramenta” ou utilidade do JMX-Console do JBoss. Desta vez eu estava com um problema na minha aplicação em que as conexões com o banco, de repente, ficavam todas ocupadas, e com isso subia uma exceção falando que a aplicação esperou por 30 segundos, e mesmo assim não conseguiu obter nenhuma conexão do pool. Puts! Foi um parto. Revisei todos os meus DAOs para ver se estava fechando corretamente as conexões. Verifiquei os mapeamentos no spring para ver se algum DAO estava como singleton e por conta disso acabar segurando uma conexão (uma vez que havia um objeto connection dentro do meu DAO abstrato) e mesmo assim nada… Não sabia e não tinha ideia de onde estava ficando pendente a conexão. Eis que surgiu uma luz no fim do túnel. Estava olhando o JBoss console e encontrei 2 MBeans/Serviços que me ajudaram muito o ManagedConnectionPool, e o TransactionManager.
Ambos podem ser iniciado a partir do jmx-console da sua aplicação, basta procurar por esses nomes lá. Com eles, consegui descobrir que ao abrir uma conexão com o banco em um SessionBean (que apenas fazia uma consulta), a mesma ficava atrelada à transação, e ao acessar um WebService dentro desta transação com um tempo de resposta demorado, corria o perigo de esgotar as minhas conexões, dado um acesso concorrente. Depois desta constatação, bastou mudar o tipo de transação do session bean para NOT_SUPPORTED que tudo começou a funcionar.

Portanto, ai vai a dica: ManagedConnectionPool, e TransactionManager, podem te ajudar muito a encontrar possíveis problemas de esgotamento do pool de conexões e deadlocks de transações (respectivamente).

0

Rails 2.0 “O que há de novo” – Parte 1

-

Tá, eu sei que cheguei tarde na onda do Rails 2.0, e só vi que mudou muita coisa, quando tentei atualizar um sisteminha antigo que fiz em Rails 1.X para a nova versão e não consegui. Tá certo que usei muita coisa Deprecated, bem como alguns plugins que não evoluíram e tal, mas nem “compilar” o código foi foda… Mas isso me levou a estudar um pouco mais sobre o Rails 2.0 e ver o que tinha mudado. Fiquei impressionado com o tamanho do change log. Por isso surgiu a idéia de criar uma série de artigos explicando o que mudou e o ganho disso.

Para começar, vamos falar de “Sexy Migrations” e outras atualizações no ActiveRecord.
Em poucas palavras, “Sexy Migrations” é apenas um formato mais elegante e enxuto de se declarar os seus arquivos de migrations. Antes, você faria assim:

create_table :people do t
t.column, “account_id”, :integer
t.column, “first_name”, :string, :null => false
t.column, “last_name”, :string, :null => false
t.column, “description”, :text
t.column, “created_at”, :datetime
t.column, “updated_at”, :datetime
end

E agora, pode fazer assim:

create_table :people do t
t.integer :account_id t.string :first_name, :last_name, :null => false
t.text :description
t.timestamps
end

Atente para “t.timestamps”. Ele é um “atalho” para você criar os campos created_at e updated_at. Ficou bem mais enxuto e intuitivo, não ?

Desempenho:
No rails 2.0, o ActiveRecord sofreu algumas alterações para um maior ganho de desempenho. Foi adicionado um simples cache de consultas ao banco. Com isso, consultas (queries) similares serão reconhecidas e retornarão os objetos que estão no cache, ao invés de ir até o banco. Algo que lembra o que o Hibernate faz com grande sucesso. O desempenho dos “fixtures” foi drasticamente melhorando, o que implica em um ganho de 50% ou mais em relação a versão anterior, ao rodar suites de testes que utilizam “fixtures”.

Serialização em JSON:
Exato, agora é possível serializar o seu model para a sintaxe JSON. Mas porque eu iria querer algo assim ? Talvez para trabalhar com Javascript (AJAX) de forma mais prazerosa do que com XML ? Acredito que sim! E veja como é ridiculamente simples:

Person.to_json

E você terá a representação em JSON do seu model.

Bom, por hoje é só. Tentarei, ainda essa semana, escrever um pouco mais sobre as melhorias do Rails 2.0. (Digo tentarei, porque ainda tenho o meu trampo, meus projetos pessoais em rails, e mais meu videogame que ocupam muito do meu tempo, rs…)

0

Comparativo entre IDEs para RubyOnRails

-

Bom, antes de começar o post, quero deixar bem claro, que nesta análise não entrou o TextMate, que é amplamente o mais famoso e aclamado ambiente de desenvolvimento para Ruby no Mac. Na minha análise concentrei mais na alternativas ao TextMate.

IDE’s analisadas: Emacs, Aptana / RadRails, NetBeans 6.0 e IntelliJ.

Bom, vamos lá, começando pelo Emacs:
Se você não gosta de usar o mouse, esta IDE é excelente para você. Claro que você vai perder um certo tempo instalando os plugins para ruby, rails e outros mais, mas depois de acertado fica tudo muito rápido e produtivo. O problema é que se você ficar 2 semanas sem usar, já começa a esquecer as teclas de atalhos, pois são vários ctrl+c+x+z+r+1, etc… Fiquei um bom tempo desenvolvendo com EMacs e realmente me agradou. Mas recentemente fui meio que forçado a abandonar o ambiente Linux :-(

Aptana / RadRails: Esse é o preferido para quem vem do mundo java! As teclas de atalho, visual e filosofia são os mesmos do eclipse, mesmo porque esta IDE é baseada nele. A integração com os “script/generate” é muito boa, a forma de configuração do webserver é tranquila, e há um console IRB nele, o que é muito legal ;-) . Infelizmente nem tudo são flores. Pelo fato do eclipse ser voltado a linguagem estaticamente tipadas (Java e C++ por exemplo), o seu autocomplete para ruby é bem deficiente. Mas mesmo assim acredito que vale a pena. É a minha favorita.

NetBeans 6.0: tem gente que quando ouve falar do netbeans já sente um certo enjôo. Confesso que era uma delas, até começar a brincar com JRuby no NetBeans 5.5. Mesmo com um autocomplete superior ao do RadRails, esta versão do netbeans ainda nao tava legal. Não era muito ágil, o editor de textos não é aquelas coisas, etc. Porém com a versão 6.0 muita coisa mudou. O NetBeans está bem legal! Tem uma integração muito boa com JRuby e com o Rails. O editor está bem ágil e decente! Infelizmente tive que abandoná-lo, pois não estava conseguindo atualizar os gems, e consequentemente o rails 2.0, devido a um: “problema com o proxy da rede”. Engraçado que o gems no console roda perfeitamente.

IntelliJ: A minha menina dos olhos! Apesar de pouco tempo de desenvolvimento com o IntelliJ, estou gostando bastante. Realmente é uma IDE que parece adivinhar o que você que fazer :-) . O Autocomplete é bem legal (mas ainda acho que o do netbenas é melhor), é bem ágil o desenvolvimento, e a criação de snippets é super simples de se fazer. Há também wizards para os “script/generate”. O maior problema desta IDE é o fato dela ser paga :-( . E isso altera o rumo das coisas, né ? Não vou falar ainda que vale a pena, pois estou engatinhando nela. Mas que vale a pena dar uma olhada na versão trial por 30 dias e “de grátis”, vale com certeza. Atente para o fato de que precisa instalar um plugin de rails, que não vem na instalação default. Mas não se preocupe, há um plugin manager de causar inveja na concorrência.

Minha opnião: Pelo fato de ser free e ter uma interface amplamente conhecida por desenvolvedores Java, ainda fico com o Aptana / RadRails, mas confesso que a IntelliJ me cativa a cada dia…

Links:
Aptana
NetBeans 6.0
Emacs
IntelliJ

Mais links:
Como usar Emacs com Rails
IntelliJ + Ruby: Live Demo

0

[NGAGE] Fifa 2008 para N-Gage!!!

-

Após interminável espera, finalmente um dos mais aguardados jogos para a plataforma N-Gage foi lançado: Fifa 2008! Apesar de eu ser um grande fã da série rival, admito que a ideia de ter um fifa de qualidade no meu n95 me agrada muito. Como acabei de ver esta notícia no Symbian Weblog, e já estou no trampo, ainda não baixei o jogo. Mas assim que chegar em casa faço o download e já começo a fazer uma análise detalhade desse que tem tudo para ser um grande sucesso.

Em tempo: Dá para usar as teclas multimídias do n95 para jogar. Fantástico né ?

fonte: http://symbianwebblog.wordpress.com/2008/04/08/fifa-08-ready-to-download-through-n-gage-application/
Jogos n-gage: http://www.n-gage.com/ngi/ngage/web/pt/en/showroom.html

0

Ray Tracing em tempo real no DirectX 11 – Eu não acredito!

-

Pois é! Vi no Zumo que a microsoft tá querendo colocar um implementação de ray tracing em tempo real no directX 11. Caraca, se isso acontecer vai ficar muuuuuuuuuuuito dahora! Mas o Ray tracing é um algoritmo muitissimo custoso, o que vai exigir um poder de processamento muito bruto! Mas eis que surge a Intel, para auxiliar a microsoft nesta “empreitada”.

fonte: http://zumo.uol.com.br/2008/04/03/directx-11-podera-ter-suporte-para-ray-tracing/