
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”
Então, segue uma listinha rápida do que eu já estou considerando essencial no pocket:
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
PS.: Dicas de softwares para entulhar a memória do pocket são bem vindas, vou passar um tempinho ainda brincando com ele
Tags: links, Mobile, windows mobile
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:
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
Acabou 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
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
)
Sugestões de assunto para os tutoriais:
Estas são só idéias, praticamente qualquer coisa atual relacionada com desenvolvimento, ou melhor ainda com desenvolvimento ágil ta valendo
PS.: espero que alguem se interesse pelos livros
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
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
), segue a lista dos posts mais acessados do mês de agosto …

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

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
Uma 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 …
Um pouco sobre o Glassfish a implementação de referência do Java EE 5 (e um ótimo servidor de aplicações):
Tags: Dia a Dia, dia-dia, Eclipse, Java, Java EE, links, produtividade, Spring Framework
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
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
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 ![]()
Acho que vai começar a aparecer um monte de temas para wordpress com aqueles javascripts chinelões do DW
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
)
Acho que era isto ![]()
Prometo que o próximo post vai ser mais interessante
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
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
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
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
Tags: links, produtividade, Ruby
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
Os plugins que eu achei que valia a pena postar aqui no blog são os seguintes:
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
É 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
E por último, mas não menos importante:
Que permite que você selecione um bloco de texto e mande o eclipse ordenar este bloco de texto em qualquer editor
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
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
Seus problemas acabaram! Chegou o Hibernate Mapeator Tabajara!
Quanto mais coisas eu limpo do Google Reader, mais coisas aparecem para “escrever depois”
Então vamos a lista!
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
Pelo que diz neste post, o compilador JIT do JRuby agora compila assertions também ![]()
O que vai fazer os testes ficarem bem mais rápidos
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
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
O código fica mais ou menos assim:
E por último, o JRuby agora precisa de Java5 para rodar, isto vai facilitar bastante a vida dos desenvolvedores
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
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
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
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
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
Como alguns de vocês devem lembrar, eu estou rodando aqui no blog um WordPress, mas em um tomcat …

<?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;
}
?>
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 ![]()
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 ![]()
Alem do link de afiliado do BrPay que diz que vai me pagar se um de vocês se inscrever la usando este link
Assim eu acho que incomodo menos os leitores mais assíduos e mostro as propagandas para quem realmente acaba clicando nelas (os chamados paraquedistas
)
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 ![]()
Espero que seja útil para alguem …