Blog do Urubatan
msgbartop
Desenvolvedor, Palestrante, Escritor, Nerd Assumido e Pai do Marcus :D
msgbarbottom

18 Dec 08 Brincando com o brinquedo novo – Lista de softwares essenciais para Windows Mobile 6.0

HTC P3301

Acabei de adquirir um HTC P3301 :D
E como qualquer geek, esta na hora de instalar tralhas no PocketPC novo efazer alguns “hard resets” até deixar ele “com a minha cara” :D
(Não, não vou deixar ele mais feio, é só força de expressão)

Não entendo por que a MS não faz o Windows Mobile pensando que muita gente vai querer utilizar o SO com a mão, e não com a stilus, mas isto é problema de marketing deles …
Sim, eu sei que se eu tivesse comprado um iPhone não teria este problema, mas o iPhone eu não conseguiria tanto desconto da claro, e sim, eu ando bastante “pão duro” :D

Então, segue uma listinha rápida do que eu já estou considerando essencial no pocket:

  • PointUI - Resolve boa parte do problema que citei, faz o windows mobile ser facilmente utilizável apenas com os dedos
  • Resco Explorer – Um file explorer decente
  • Resco Audio Recorder – Muito melhor que o gravador de audio padrão
  • TCPMP (The Core Portable Media Player) – Utilizo bastante para assistir videos no pocket, tenho assistido quase todos os episódios de Heroes no pocket :D , Agora falta achar um player que toque RMVB pra poder assistir Naruto Shippuden e Bleach também :D
  • SpbBackup – Por que backup é necessário :D
  • WM5Storage - ótimo freeware para transformar o pocket em um leitor de microSD, barbada para quem precisa conectar o cartão do pocket em um micro sem o ActiveSync

Por enquanto é isto, semana que vem vou fazer um hardreset e testar o Manila 2d.

Eu ter um pocketPC novamente, provavelmente quer dizer que vou voltar a me interessar por desenvolvimento para windows mobile, então é provavel que eu escreva sobre isto, principalmente se eu conseguir compilar coisas no meu linux e rodar no pocket, mas não tenho muitas esperanças :D

PS.: Dicas de softwares para entulhar a memória do pocket são bem vindas, vou passar um tempinho ainda brincando com ele :D

Tags: , ,

12 Oct 07 Ruby fora dos trilhos – Nitro and Og!

O Ruby começou a ganhar espaço nas empresas e na blogosfera principalmente por causa do Rails, mas o Rails não é o único framework para desenvolvimento Web em Ruby, um destes outros frameworks é o Nitro Framework ele tem mais ou menos a mesma idade do Rails, mas tem muito menos documentação, e que eu saiba bem menos usuários também.

Neste post vou falar um pouquinho dos meus primeiros 30 minutos com o Nitro …

Uma das coisas que eu mais gosto do Rails e que não é possível de se fazer com o Nitro é simplesmente alterar uma classe com o servidor rodando e as alterações se refletirem automagicamente no browser, mas vamos deixar isto de lado por enquanto …

O nitro diferente do Rails tem mais de uma abordagem para o desenvolvimento, é possível desenvolver aplicações utilizando MVC como o Rails, mas também é possível desenvolver aplicações direto em páginas como no ASP ou no PHP.

Para começar com o nitro basta seguir este passo a passo:

  • gem install -y nitro (isto vai instalar o nitro e as suas dependências)
  • gen app rocketpower (isto vai criar uma aplicação nitro)
  • cd rocketpower
  • ruby run.rb (eu precisei editar o arquivo e adicionar um require ‘rubygems’ na segunda linha)
  • acessar o endereço http://locahost:9000

Pronto, você esta executando a sua primeira aplicação Nitro!

Até o momento estou achando o Nitro muito confuso, provavelmente por causa da falta de documentação, ou dos exemplos toscos, mas seguem algumas coisinhas legais …

Para programar orientado a páginas, basta criar uma página no diretório public com a extensão .xhtml e quando quiser escrever código Ruby basta coloca-lo entre <?r e ?> ou então quando for para simplesmente imprimir texto usar diretamente #{…} como em qualquer string Ruby.

O nitro não possui uma estrutura de diretórios padrão como o Rails, os arquivos com o código da aplicação são declarados diretamente utilizando require no run.rb, acho que por isto não existe reload automático.

O nitro não obriga a extender uma classe para criar uma classe persistente (na verdade não é o Nitro que faz isto é o Og que é o framework de persistencia utilizado pelo Nitro), ele vai persistir qualquer coisa que tiver um método “serializable_attributes” que é criado automagicamente quando se utiliza os helpers para definição de campos do Og (setting).


Ele não tem nada parecido com migrations, pelo menos não que eu tenha encontrado até agora.

O código do Nitro e do Og eu achei muito mais simples de ler e entender o que esta acontecendo do que o código do Rails, já o código das aplicações escritas com o Nitro eu achei muito bagunçado, parece a grande maior parte dos códigos PHP que se encontra por ai (nada contra PHP apenas contra péssimos programadores PHP que infelizmente são a maioria).

Uma coisa que eu achei bem legal no nitro, é que os parametros para um método de um controller são recebidos como parâmetros do método mesmo e não no mapa “params”.

Bom, o exemplo que eu queria fazer para este post vai ficar para outra hora, pois vou precisar estudar um pouco mais o Nitro e o Og para poder fazer qualquer coisa que não me deixe envergonhado, achei os exemplos bagunçados demais, muitas classes por arquivo e coisas assim …

Por enquanto o Og parece muito verde ainda, ele havia passado um bom tempo com o desenvolvimento quase parado, mas voltou a se mexer agora com o “boom” do Rails.

Ele tem algumas coisas legais, mas por enquanto fico com o Rails :D

  1. Mais sobre Ruby e Rails
  2. Site oficial do Rails
  3. Mais sobre o Nitro
  4. Tutorial sobre Rails
  5. Curso de Ruby On Rails

Tags: ,

08 Oct 07 Rails 1.2.4 – release de manutenção liberada sexta feira passada

Ruby On Rails LogoAcabou de ser liberada uma release de manutenção do Rails.

Esta release tem poucas correções, algumas importantes de segurança, correção de encoding para JSON …

Mas o mais importante é que neste release serão gerados logs de deprecation para tudo o que não vai mais ser suportado no Rails 2.0.

Por tanto atualize a sua aplicação e preste atenção nos logs se pretende utilizar o Rails 2.0 em breve :D

Tags: ,

17 Sep 07 Queima de Estoque! (Livros de grátis, ou quase :D )

Sun Certified Enterprise Arqhitect for J2EE

16092007053.jpg
SCWCD Study Kit

16092007054.jpg
Segurança de Dados Criptografia em Redes de computador

16092007055.jpg
Desenvolvendo Aplicações com UML

16092007056.jpg
Segurança Máxima Para Linux

16092007057.jpg


Estes livros ai de cima estão parados na minha casa, e acredito que não exista probabilidade nenhuma de eu lê-los novamente …
Então achei que seria interessante dar eles para quem va fazer bom uso, só que não acho que valha a pena fazer algum tipo de sorteio, então as regras para quem se interessar pelos livros são as seguintes:

  1. Deixar um comentário aqui dizendo por qual dos livros se interessou
  2. Limite de 1 (um) livro por pessoa
  3. Postar um link em seu próprio blog se o tiver para este post ou para a home do meu blog (prefiro para a home :D )
  4. Esrever 1 tutorial sobre algum assunto atual e me enviar para que seja postado aqui no blog

O primeiro interessado em cada um dos livros que cumprir os itens acima leva o livro, o único custo vai ser o frete (se quiser pegar pessoalmente ai não paga nem isto :D )

Sugestões de assunto para os tutoriais:

  • Ruby
  • Rails
  • Groovy
  • Grails
  • Recursos de integração com a JVM do JRuby
  • Flex + Java
  • Flex + Ruby
  • Wicket
  • Tapestry
  • JSF + JPA + EJB3
  • Escrevendo testes unitários, de integração e de aceitação (em Java ou Ruby)

Estas são só idéias, praticamente qualquer coisa atual relacionada com desenvolvimento, ou melhor ainda com desenvolvimento ágil ta valendo :D

PS.: espero que alguem se interesse pelos livros :D


O melhor curso de Ruby On Rails de porto alegre começa dia 24, ainda da tempo de se inscrever

Tags: , , , ,

06 Sep 07 Dica de leitura: Por que eu tenho que aprender isso?

Eu quero jovens que olhem nos olhos dos seus professores, e perguntem com firmeza e objetividade: “Por que eu tenho que aprender isso?” e quando o professor não souber responder, levantem-se e retirem-se da sala, e voltem apenas quando o professor estiver realmente preparado.

Este é o final do texto: Por que eu tenho que aprender isso?

Não tem nada a ver com tecnologia, ou será que tem?
Mesmo assim, eu adoraria que os alunos de escolas publicas e faculdades fossem assim, e que a porcaria do MEC deixasse de ser inútil como é hoje, e montasse currículos que ensinasse as pessoas a pensar, e não estas coisas que temos hoje!
Eu sempre questionei “Por que tenho que aprender isto?” e nunca obtive uma resposta satisfatória, e pior ainda, eu questionava: “Por que tenho que fazer isto desta maneira burra?” e principalmente professores de matemática diziam que eles queriam ver o desenvolvimento das questões, mesmo em grande parto dos casos isto sendo completamente inútil!
Precisamos que as escolas ensinem a pensar, e não o que pensar!

Mas acho que era isto por enquanto, me empolguei com o primeiro texto que li pela manha :D

Tags: , ,

05 Sep 07 Posts mais acessados dos últimos tempos do último mês (agosto)

Estamos no inicio de outro mês, e só para não perder o costume (e não ficar sem postar nada hoje, pois estou meio sem tempo :D ), segue a lista dos posts mais acessados do mês de agosto …

Feed Burner
Segundo o feed burner, estas foram as páginas mais acessadas:

  1. Eclipse Europa – Uma melhor “primeira impressão” – 865 acessos
  2. Uma verdade Inconveniente – 763 acessos
  3. Teste de QI – 698 acessos
  4. DAO Genérico – Um exemplo a pedidos – 580 acessos
  5. Implementando Login com JSF (Exemplo Simples) – 548 acessos
  6. Teste de QI do Einstein – 527 acessos
  7. Super Mário Bros, ou melhor Super Tux – 504 acessos
  8. Ambiente básico para desenvolvimento Java/Web + Configuração Eclipse. – 495 acessos
  9. Finalmente Tomcat 6 final disponivel para download – 487 acessos

Google Analytics

  1. Eclipse Europa – uma melhor primeira impressão – 1268 acessos
  2. Teste de QI – 1120 acessos
  3. Implementando Login com JSF (exemplo simples) – 1111 acessos
  4. Uma verdade inconveniente – 962 acessos
  5. Quatro dias de Ruby On Rails – primeiro dia – 853 acessos
  6. Ambiente básico para desenvolvimento java/web – configuração do eclipse – 813 acessos
  7. Produtividade com JSF + JPA sem nenhum outro framework, com DI e edição via GET em vez de POST – 795 acessos
  8. Teste de QI do Einstein – 774 acessos
  9. Super Mário Bros, ou melhor, Super Tux! – 769 acessos

E esta cada vez mais comprovado, tem uma grande diferença dos números do Feed Burner para os do Google Analytics, ou seja, tem diversos acessos que são contabilizados pelo Google Analytics que não são contabilizados Feed Burner …
E por que eu continuo usando o feed burner? por que ele da estatísticas quase instantâneas, e posso acompanhar os acessos do blog durante o dia, já o analytics só amanha para saber como foi hoje :D

Tags: , ,

31 Aug 07 Um pouco de tudo e tudo de nada – correndo atrás da máquina

fields.JPGUma das coisas legais de trabalhar com TI é que todo dia tem novidade, uma das coisas ruins de trabalhar com TI é que precisamos pelo menos ter uma idéia sobre tudo o que esta acontecendo …

Então, segue mais um daqueles posts com poucas opiniões e muitos links …

  • Annotated to the bones:
    Parece que o pessoal não aprende mesmo, em vez de diminuir a quantidade de configurações necessárias eles só mudam elas de lugar, mas mesmo assim ja melhora um pouco, a versão 2.0 da especificação do JMX (Java Managenment Extensions) vai suportar a definição de MBeans via anotações como podemos ver neste post.
  • Parece que o JavaFX esta pegando mesmo, ja existem projetos para criação de bibliotecas de componentes para o JavaFX, alem do projeto do compilador que deve diminuir bastante o startup das aplicações em JFX transformando a aplicação em um .class padrão, mas o que eu quero realmente ver, é quando vai estar disponível o Java FX Mobile! por que quanto mais eu apanho pro Java ME, mais eu me convenço que Java ME só serve pra fazer joguinhos.
  • E depois que eu escreve um post sobre Design By Contract, na verdade em um dos comentários postados, fiquei sabendo do Spring DBC (Spring Design By Contract) que é uma biblioteca que facilita a utilização de Design By Contract em projetos que utilizam o Spring Framework, utilizando o AOP dinâmico do Spring Framework em vez de AOP estático do AspectJ, a única coisa que não gostei é que a especificação do “Contrato” é feita no XML, ou seja, longe da classe.
  • A Vingança dos Nerds! não, eu não estou falando daquele filme, estou falando deste post do BizRevolution, um ótimo post de uma “pessoa normal”, dizendo que mesmo os “humanistas” não gostando da idéia, o mundo é dos Nerds :D
  • A ZDnet finalmente revelou quais são os “7 hábitos dos desenvolvedores eficientes“, e sinceramente eu concordo com eles, com estes 7 hábitos, qualquer desenvolvedor se torna mais eficiente do que seria sem eles, os 7 hábitos são:
    • Entender o problema
    • Usar as ferramentas adequadas
    • Focar a simplicidade (foi a melhor tradução para Strive que eu consegui :( )
    • Mantenha o seu código limpo e claro
    • Aprenda a debugar
    • Use o que ja esta disponível (não re-invente a roda)
    • Continue a aprender
  • Ja começou a aprender a usar o Guice? se não começou ainda, ja esta na hora, tem empresas pedindo experiência com o Guice na hora de contratar, faz um tempinho já, mas eu falei um pouco sobre o Guice aqui no blog :D
  • glassfish.pngUm pouco sobre o Glassfish a implementação de referência do Java EE 5 (e um ótimo servidor de aplicações):
  • Sabe aqueles bug reports maravilhosos que ajudam aresolver problemas? se você gosta deles, não permita que seus usuários leiam isto. O Guia de como criar os piores bugs reports possíveis, e pior, baseado em fatos reais.
  • A equipe de desenvolvimento do Eclipse Web Tools ja esta trabalhando na versão 3.0, por enquanto a única alteração é o suporte ao Jetty :D
  • xplogo.gifXP: Melhor em Java ou em Ruby? é um post sobre um TCC falando de metodologias ágeis (no caso XP) comparando o mesmo projeto desenvolvido em Java e em Ruby, o meu único comentário sobre isto é: Ágil não quer dizer apenas entregar a primeira versão rápido (não estou dizendo que este é o caso), acho que as comparações deles valem tanto quanto dizer que delphi é melhor para desenvolvimento ágil do que java por que cria mais rápido uma aplicação Desktop de frontend para bancos de dados :D
  • Finalmente parece que o mercado esta acordando para as metodologias ágeis (tanto de desenvolvimento como de gerenciamento), todos os dias vejo uma noticia nova de mais uma empresa começando a utilizar XP ou SCRUM ou …
    Só espero que não façam a mesma porcaria que fizeram com o RUP que é muito bom, mas todas as empresas que eu conheço que dizem usar RUP usam Waterfall …
  • Java Server Faces

Tags: , , , , , , ,

29 Aug 07 Off Topic: Diversos sobre Blogging e WordPress

Aproveitando que já falei do blog ontem (tudo bem, usei a palavra WordPress apenas), segue uma série de links e comentários sobre Blogging e WordPress.

Primeiro, um dos motivos para grande parte dos posts deste blog, é que uso ele como referencia para coisas que não quero esquecer, por exemplo algum exemplo de código que posto aqui, quase sempre uso depois, este é o segundo maior motivo para que eu escreva por aqui, o primeiro é que gosto do “IBOPE” hehehe :D

Seguindo com o offtopic …
Este site de nome muito doido, faz um trabalho bem legal, você fornece a sua URL e ele mostra o PageRank, BackLinks, Indexação das páginas e mais um monte de coisas sobre qualquer URL :D

Segundo o pessoal do “nerdown” a empresa Vikiworks, criou um plugin para o dreamweaver para facilitar a criação de temas para o wordpress, vamos ver o que vai sair disto :D
Acho que vai começar a aparecer um monte de temas para wordpress com aqueles javascripts chinelões do DW :D

Também tem gente dizendo, e eu concordo, que o WordPress pode ser utilizado para diversos tipos de sites, e não apenas para blogs.

Depois das mudanças do google no algoritmo de calculo do PageRank, ter um “BlogRoll” muito grande no blog pode prejudicar o seu ranking no google,

Como todos sabem, tem maluco pra tudo, mas este negõcio de “ProBlogger” ta ficando meio ridiculo, tem gente pagando por comentários nos seus blogs, sinceramente, eu não acho graça nenhuma nisto, claro, uma das partes mais divertidas de ter um blog, é quando eu escrevo alguma coisa e um monte de gente comenta, mas se forem pagos para isto perde toda a graça …

Não sei se é só comigo que aconteceu, mas depois que diminui bastante a quantidade de adsense no blog, aumentaram os valores por click (o que compensou a diminuição deles).
O Ideal na minha opinião pelo menos, seria conseguir umas duas empresas para colocar o logo ali na barra lateral, ai poderia ficar só com isto e tirar todo o adsense (só não to afim de pagar pra escrever no blog, ja que hoje o blog se paga sozinho :D )

Acho que era isto :D
Prometo que o próximo post vai ser mais interessante :D

Tags: , ,

23 Aug 07 Random Tips 4 – Limpando mais um pouco dos links interessantes

O Eduardo Fioresi postou em seu blog, uma ótima dica de como melhorar o código Ruby.

Básicamente é um método da classe Array que eu não conhecia ainda também, é o each_with_index, segue o exemplo:

["I", "love", "Ruby", "and", "Rails"].each_with_index do |item, contador|
    puts "Item #{contador.next}: #{item}"
end

Segundo o baguete, a SUN começa a distribuir o Star Office junto ao Google Pack, espero que este seja um grande passo em direção a popularização do StarOffice, e para diminuir o dominio do MS Office no mercado :D

Para baixar o Google Pack é só clicar aqui.

Para quem quiser entender melhor o ActiveRecord do Ruby On Rails, aqui tem um monte de Screen Casts sobre diversos recursos dele, alguns bem pouco conhecidos.

Seguindo a onda de comparações de frameworks, aqui tem uma ótima comparação entre AppFuse, Grails e Rails, claro que puxando um pouco para o lado do AppFuse :D

Precisando de um calendário mais bonito para a sua aplicação Ruby On Rails? esta pode ser a solução! O projeto é Open Source, e o código e a documentação estão disponíveis aqui.

Não gosta da forma como o Rails identifica os campos com erro em um formulário? é bem fácil de costumizar isto, aqui tem uma explicação mais detalhada, mas basicamente é só colocar em algum arquivo.rb dentro do projeto, com um require no boot.rb um código parecido com o seguinte:

module ActionView
  class Base
    @@field_error_proc = Proc.new { |html_tag, instance|
      "<div class=\"fieldWithErrors\">#{html_tag}</div>"
    }
    cattr_accessor :field_error_proc
  end

  ...

end

Segundo o Guilherme Chapewsky: Aumenta a adoção de metodologias ágeis em 2007
Para mim isto é uma noticia ótima :D

Neste post, do Daniel Wildt tem uma lista de videos sobre metodologias ágeis para quem quer aprender e endender um pouco mais, segue a lista:

Acho que era isto por enquanto, desta vez praticamente só agile e Ruby On Rails :D

Tags: , ,

22 Aug 07 Plugins legais para se instalar no Eclipse (ou como entulhar mais a sua IDE preferida :D )

Atualmente no trabalho não posso utilizar o IntelliJ IDEA, que é a IDE que uso para trabalhar em casa (projetos open source e afins), e estou utilizando o Eclipse + WPT 2.0 (Europa Vanilla praticamente).
Mas encontrei estes plugins que suprem exatamente aquelas necessidades que você não sabia que tinha antes de começar a usar (como aquela velha frase que diz que: A informática veio para resolver todos os problemas que você não tinha antes dela).

O Legal é que estes plugins foram desenvolvidos pelos mesmos dois consultores, ou seja, os caras são bem criativos :D

Os plugins que eu achei que valia a pena postar aqui no blog são os seguintes:

EclipseWiki

Uma Wiki engine que roda dentro do eclipse, uma ótima idéia para documentar um projeto, ainda mais com a facilidade de linkar qualquer tipo de recurso do projeto dentro do texto do wiki, e com um editor bem razoável dentro do mesmo ambiente :D

Save Me

É a solução para não perder mais aquele arquivo que você estava editando a horas mas esqueceu de salvar por algum motivo, ele simplesmente salva qualquer arquivo que você estiver editando, assim que o editor perder o foco, e não se preocupe com isto, pois se você fizer besteira pode voltar as versões com o Local History do Eclipse :D

E por último, mas não menos importante:

Sort It

Que permite que você selecione um bloco de texto e mande o eclipse ordenar este bloco de texto em qualquer editor :D

Eu ja precisei disto várias vezes, na verdade não enquanto estava editando código fonte, mas editando outros arquivos e principalmente para executar algum tipo de rotina em batch.

Estes foram os culpados por o meu eclipse não ser mais um “Europa Vanilla“, ou seja, estes são os únicos plugins fora o Europa que estou utilizando atualmente :D

Quem quiser instalar algum deles, todos podem ser encontrados neste update site: http://www.stateofflow.com/UpdateSite

Esta é uma das maiores vantagens do Eclipse, sempre aparece um plugin Divertido (se bem que não posso reclamar o IntelliJ IDEA, ele também tem vários plugins divertidos para nos ajudar a transformar a nossa IDE preferida em uma carroça :D

Tags: ,

20 Aug 07 Problemas para conseguir utilizar Hibernate? ou aquela dúvida de última hora?

Seus problemas acabaram! Chegou o Hibernate Mapeator Tabajara!


Agora falando sério, acabei de achar na net, depois de uma dica do oraculo, o “Hibernate Mapping Cheat Sheet“Ótimo material para quem precisa escrever os XMLs de mapeamento do Hibernate!

Tags: ,

13 Aug 07 Random Tips 3 – Quanto mais eu cavo mais fundo fica o buraco :D

Quanto mais coisas eu limpo do Google Reader, mais coisas aparecem para “escrever depois” :D

Então vamos a lista!

j2meedit.gif Você já pensou em editar o código fonte de alguma coisa do seu celular? Pois é, tem maluco pra tudo!
Eu vi neste blog, um link pra esta aplicação de malucos, e digo de malucos por que o cara tem que ser meio doente para escrever usando o teclado do celular, mas como eu disto antes, cada doido com as suas manias.

O J2MEdit permite que você edite código Java, C/C++, PHP e HTML direto do Celular, e tu ainda pode salvar os arquivos localmente ou no servidor deles.
Pior ou melhor ainda, é possível compilar código Java e C/C++ direto do celular (na verdade o editor faz um upload do código e compila no server), alem de diversos outros recursos (compartilhamento, …)

Tudo isto por U$4,00 por mes, ou U$2,60 por mes se fizer um contrato de 12 meses.

Até que eu achei a idéia interessante, fora a grande probabilidade de arrumar uma tendinite :D

Um pouco de Ruby:

ruby.jpgPelo que diz neste post, o compilador JIT do JRuby agora compila assertions também :D
O que vai fazer os testes ficarem bem mais rápidos :D

Este outro post, de titulo “Por que Rails é melhor que ASP.NET” tem um ponto devista bem interessante, e uma ótima dica!
Que resumindo quer dizer: aprenda novas ferramentas, mas não adianta querer abandonar agora aquela que paga o leitinho das crianças :D

Aqui tem um GEM bastante interessante para a sua próxima aplicação escrita em Ruby, o cara escreveu uma biblioteca que permite acessar o Google Music Trends, a partir de sua aplicação.
O único porem, é que como não existe uma API pública, isto foi feito via screen-scraping, ou seja, se mudar o layout a biblioteca quebra.

Mas é um ótimo exemplo de utilização do Hpricot, o parser de HTML/XML mais fácil de utilizar que ja vi em qualquer linguagem :D

O código fica mais ou menos assim:

require 'google_music_trends'
trends = GoogleMusicTrends.new
s = "GOOGLE MUSIC TRENDS\n===================\n"
trends.get(:genre => 'alternative & punk', :where => 'USA').each do |item|
s << "Artist: %s\n" % item[:artist]
s << "Song: %s\n" % item[:song]
s << "Rank: #%s\n\n" % item[:rank]
end
puts s
E por último, o JRuby agora precisa de Java5 para rodar, isto vai facilitar bastante a vida dos desenvolvedores :D

Voltando um pouquinho para o Java EE

Finalmente acertaram a mão de fazer uma biblioteca de paginação decente para Java EE!

Eu vi neste post do blog do Adam Biens, um link para o projeto p4j5.

A biblioteca de paginação tem suporte a entidades persistentes JPA, permitindo que o lazy loading funcione sem problemas (claro, apenas se você estiver utilizando JPA+EJB3), mas ja é uma mão na roda, acho que vou utilizar isto nos mini cursos que vou apresentar no WebMobile Tech Week 2007 :D

Para utilizar ficou bem fácil, deem uma olhada no código:

CustomerQuery query = (CustomerQuery)PortableRemoteObject.narrow(remote,CustomerQuery.class);
while(query.hasNext()){
List<Customer> customers = query.next();
System.out.println("Size: " + customers.size());
for (Customer customer : customers) {
System.out.println("Customer: " +customer);
}

}

Ainda no mundo Java, o Google criou uma ferramenta que analisa os bytecodes de uma aplicação Java e detecta a utilização de Singletons. Parece que todos estão convencidos que singletons não são uma boa ideia mesmo :D

Para quem como eu, sempre achou muito estranho o Python, por achar que espaços são um identificador de blocos de código, os seus problemas acabaram!
Segundo este post do Walter Cruz criaram um “encoding” novo para o código fonte python que permite a utilização de chaves para definição de blocos.
Quem quiser brincar, é só baixar esta biblioteca, mas é só pra brincar mesmo :D

E só pra finalizar: “As pessoas não precisam ser educadas, as pessoas precisam ser lembradas“, mas claro, nunca levando isto ao pé da letra :D

Tags: , , , , ,

07 Aug 07 PHP Snipets – útil para quem tem um blog baseado em wordpress …

Como alguns de vocês devem lembrar, eu estou rodando aqui no blog um WordPress, mas em um tomcat




Por tanto, eu não tenho como utilizar o .htaccess para configurar qualquer tipo de redirecionamento …
Há algum tempo, o endereço do blog era blog.urubatan.com.br e não www.urubatan.com.br como é o caso hoje …
Eu queria avisar o google que os dois são o mesmo site para melhorar um pouco a indexação …
A solução foi bem simples até, bastou utilizar este código …

<?php
if ($_SERVER['HTTP_HOST']=='blog.urubatan.com.br') {
$loc = "http://www.urubatan.com.br" .$_SERVER['REQUEST_URI'];
header( "HTTP/1.1 301 Moved Permanently" );
header("Location: ".$loc);
exit;
}
?>

Coloquei ele no index.php e tudo passou a funcionar, até o google ja esta se achando e removendo os registros duplicados :D

Se alguem quiser mostrar uma lista com os últimos posts como eu faço na Home, o código é bem simples, e tem uma função simples do wordpress pronta para isto, basta utilizar este código:

<?php wp_get_archives('type=postbypost&limit=25'); ?>

Agora, não lembro quem me perguntou a pouco tempo atraz, como é que eu conseguia colocar a lista dos últimos comentários …
Na verdade, até hoje eu não acho que tenha sido uma boa idéia colocar ali os últimos comentários, mas vou fazer um refactoring geral no blog em pouco tempo mesmo :D
Mas voltando ao assunto, para mostrar a lista dos últimos comentários, o código é o seguinte:

<?php
$comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 15");
if ( $comments ) {
foreach ($comments as $comment) {
echo '<li>' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>');
echo '</li>';
}
}?>

E por último, não sei se esta adiantando, mas eu tento não incomodar com o AdSense, os usuários que vem aqui sempre …
Como é que eu faço isto? eu mostro por padrão apenas 1 bloco do adsense para os usuários que vem direto para ca, ou que vem de algum feed reader …
Agora se você chegar aqui via google ou alguma outra search engine, provavelmente vai ver uma lista de posts relacionados e mais um monte de ADs …
Para fazer isto é fácil …
primeiro, tem que instalar o plugin Landing Sites e depois costumizar os templates onde quiser alguma alteração …
Por exemplo:

<?php if(ls_getinfo('isref')){ ?>
<h3><?php ls_getinfo('terms'); ?></h3>
<p>Você veio de <?php ls_getinfo('referrer'); ?> procurando por <i><?php ls_getinfo('terms'); ?></i>. Você pode se interessar por estes posts:</p>
<ul>
<?php ls_related(5, 10, '<li>', '</li>', '', '', false, false); ?>
</ul>
<?php adsense_deluxe_ads('uolblock2'); ?>
<!--Begin BRpay Logo --><A href="http://www.brpay.com.br/?ind=511129" target=_blank><IMG SRC=http://www.brpay.com.br/Security/Imagens/LogoPagamentos.gif border=0 alt="Abra sua conta Brpay e comece a aceitar cartões de crédito e pagamentos online, imediatamente."></A><!-- End BRpay Logo -->
<?php } ?>

Este código verifica se o visitante veio de uma search engine (<?php if(ls_getinfo(‘isref’)){ ?>) e caso positivo, mostra quais os termos da pesquisa (<h3><?php ls_getinfo(‘terms’); ?></h3>), uma lista de posts relacionados (<?php ls_related(5, 10, ‘<li>’, ‘</li>’, ”, ”, false, false); ?>) e um bocado de propaganda que não aparece paa vocês que vem aqui todos os dias :D
Alem do link de afiliado do BrPay que diz que vai me pagar se um de vocês se inscrever la usando este link :D

Assim eu acho que incomodo menos os leitores mais assíduos e mostro as propagandas para quem realmente acaba clicando nelas (os chamados paraquedistas :D )

Acho que era isto por enquanto, eu só escrevi este post por que de vez em quando alguem perguntava onde baixar o Landing Sites, ou então como mostrar os últimos comentários …
Resolvi juntar tudo num montão e postar aqui no blog :D
Espero que seja útil para alguem …

Tags: , ,

07 May 07 links for 2007-05-07

Tags:

03 May 07 links for 2007-05-03

Tags: