<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-597100579646474155</atom:id><lastBuildDate>Thu, 14 Jan 2010 02:20:06 +0000</lastBuildDate><title>Jahnke`s Weblog</title><description>Jahnke's World Domination Project</description><link>http://maxjahnke.blogspot.com/</link><managingEditor>noreply@blogger.com (Jahnke)</managingEditor><generator>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jahnkesweblog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jahnkesweblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">jahnkesweblog</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-7039010860619637203</guid><pubDate>Sat, 07 Nov 2009 01:04:00 +0000</pubDate><atom:updated>2009-11-06T17:04:05.801-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Scheme</category><category domain="http://www.blogger.com/atom/ns#">Ruby</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><title>Uma comparação ingênua entre algumas linguagens</title><description>Pretendo fazer uma pequena comparação entre algumas linguagens de programação, só para tentar mostrar um pouquinho de como cada uma tende a fazer com que o programador pense nas soluções de uma determinada maneira.&lt;br /&gt;
&lt;br /&gt;
Para tal, vamos começar com uma pergunta bem simples: quem negaria que o conceito de somatório é importante em qualquer ciência exata? Se você não se lembra do somatório, dê uma olhada no &lt;a href="http://pt.wikipedia.org/wiki/Somat%C3%B3rio"&gt;artigo sobre somatório da Wikipédia&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ou seja, essa é uma notação para a soma de &lt;strong&gt;f(1) + f(2) + ... + f(m)&lt;/strong&gt;. Um conceito bem simples que torna um monte de coisas bem mais práticas. Se tiver algum matemático lendo esse texto, certamente vai lembrar como o somatório é importante na hora de formalizar o conceito de série de números reais, de série de funções. Até mesmo a integral pode ser definida como um limite de somatórios. Falo da &lt;a href="http://pt.wikipedia.org/wiki/Integral_de_Riemann#Soma_de_Riemann"&gt;soma de Riemann&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Calma, esse texto não vai ser sobre matemática, não se desanimem. Vou começar com um objetivo bem simples: como levar naturalmente o conceito de somatório para a programação? Em linguagens como em C normalmente o somatório fica escondido dentro dos for's e dos while's, ou dá para fazer um hack usando ponteiros para funções, já em outras linguagens, como &lt;a href="http://pt.wikipedia.org/wiki/Python"&gt;Python&lt;/a&gt;, &lt;a href="http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa%C3%A7%C3%A3o%29"&gt;Ruby&lt;/a&gt; e &lt;a href="http://pt.wikipedia.org/wiki/Scheme"&gt;Scheme&lt;/a&gt; o somatório pode ser implementado de uma maneira bem elegante.&lt;br /&gt;
&lt;br /&gt;
Mas antes de começar a implementar, vamos tentar formalizar um pouco o conceito de somatório. Podemos pensar no somatório como uma função que recebe dois números inteiros e uma função e então devolve o resultado da soma da função calculada em cada um dos números inteiros entre os dois inteiros dados.&lt;br /&gt;
&lt;br /&gt;
Como isso ficaria em pseudocódigo? Para quem programou muito em C, eu acho que o código ficaria assim:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;real soma(inteiro ini, inteiro fim, funcao f)
{
  inteiro i = ini;
  real r = 0;

  enquanto(i &amp;lt;= fim)
  {
    r = r + f(i)
    i = i + 1;
  }

  devolve r;
}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Mas, será que é fácil implementar algo assim em C? Não é complicado, mas tem uns probleminhas e limitações que ficarão bem óbvios, vejam:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;float soma(int ini, int fim, float (*f)(float x))
{
  int i = ini;
  float r = 0;

  while(i &amp;lt;= fim) /* while é mais compreensível do que o for! */
  {
    r = r + f(i);
    i = i + 1;
  }

  return r;
}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;em&gt;Mas, tio, qualé a desse &lt;strong&gt;float (*f)(float x)&lt;/strong&gt;?!&lt;/em&gt; - É um ponteiro para uma função! Sim, existe esse treco e dá tanta dor de cabeça quanto você pode imaginar. :D&lt;br /&gt;
&lt;br /&gt;
O problema aqui é que em C funções são diferentes dos dados comuns. Outro problema chato é que a soma funciona para um tipo &lt;em&gt;específico&lt;/em&gt; de função e tentar aumentar a flexibilidade só causaria mais dor de cabeça, mais náuseas - deixa eu explicar com termos "técnicos" - você teria que usar mais ponteiros. Sim, nada é tão complicado e estranho que não possa ser piorado.&lt;br /&gt;
&lt;br /&gt;
Agora vamos dar uma olhada como essas coisas ficam em Python:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;def soma(ini, fim, func):
  r = 0
  for i in range(ini, fim + 1):
    r = r + func(i)
  return r
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Um amigo sugeriu que a maneira mais &lt;em&gt;pythônica&lt;/em&gt; de fazer isso é:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;def soma(ini, fim, func):
  return sum(func(i) for i in range(ini, fim+1))
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
A primeira coisa que notamos é como a sintaxe é simples e elegante e o código, menor! Mas acho que todo mundo já está cansado de saber como Python é uma linguagem linda e elegante. Vamos para a parte que importa.&lt;br /&gt;
&lt;br /&gt;
Além disso a função &lt;strong&gt;func&lt;/strong&gt; é tratada como um dado normal, que pode ser passada como parâmetro e depois pode ser chamada como função. Além disso, outra vantagem óbvia do Python é que não precisamos nos preocupar demais com o tipo de dado que a função fim devolve. Basta que ela devolva tipos de dados somáveis. Em C teríamos que fazer uma função de soma para funções que devolvem inteiros, depois outra que soma (concatena) strings ou algum outro tipo de dado em que seja possível definir uma soma.&lt;br /&gt;
&lt;br /&gt;
Vamos ver como o mesmo código fica em Scheme?&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(define (soma ini fim f)
  (if (&amp;gt; ini fim)
      0
      (+ (f ini) (soma (+ ini 1) fim f))))
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Não é simples e bonito? O que eu achei mais interessante é que pela maneira com que o scheme foi desenvolvido, não há a necessidade coisas como o while e o for do C. E, ao contrário do que parece, esse código não acaba ficando lento, nem consome muita memória por ser uma recursão, pois, graças a uma técnica chamada de &lt;a href="http://en.wikipedia.org/wiki/Tail_recursion"&gt;tail recursion&lt;/a&gt;, a função recursiva é executada como se fosse iterativa.&lt;br /&gt;
&lt;br /&gt;
Também tem a beleza matemática: a função em Scheme segue exatamente a definição por indução finita! Eu convido o leitor para tentar definir a soma de &lt;strong&gt;n&lt;/strong&gt; números inteiros usando indução para então se convencer que a maneira com que Scheme trabalha é realmente natural, pelo menos natural para os iniciados na linguagem matemática.&lt;br /&gt;
&lt;br /&gt;
O que eu acho mais fantástico em Scheme é a possibilidade de criar funções durante o período de execução e sem a necessidade de ter que dar nomes para as funções. A vantagem de não precisar das nomes é que não precisamos dar nomes para funções que não merecem um nome! :D&lt;br /&gt;
&lt;br /&gt;
Em Scheme a função soma poderia ser chamada assim:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(soma 1 10 (lambda (x) (* x (+ x 1))))
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Isso aí chama a função soma passando uma função que recebe &lt;strong&gt;x&lt;/strong&gt; e devolde &lt;strong&gt;x*(x + 1)&lt;/strong&gt;. Bem divertido, hein? Scheme coloca em evidência a criação de funções em tempo de execução e acho que essa é justamente a graça do Scheme. Tem muito mais coisas legais que podem ser feitas com essa brincadeira de criar funções em tempo de execução: dá para usar funções para representar pares ordenados e até listas encadeadas. Você consegue fazer isso? Aliás, acho que a maior graça das linguagens funcionais é a separação entre o conceito de "dado" e "função" acaba não fazendo mais muito sentido.&lt;br /&gt;
&lt;br /&gt;
Bem, eu tinha citado Ruby como exemplo de linguagem interessante para escrever o somatório, então vamos lá. Mas antes, deixa eu só eu fazer um comentário: um monte de gente fala que Ruby é uma linguagem que suporta o &lt;em&gt;paradigma funcional&lt;/em&gt; e isso ainda me parece meio estranho. Em Ruby, apesar de ser possível criar métodos em tempo de execução, as funções não são normalmente tratadas como dados. O código a seguir, por exemplo, &lt;em&gt;não&lt;/em&gt; funciona:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;def soma(ini, fim, func)
    r = 0
    for i in (ini...(fim + 1))
        r = r + func(i)
    end
end
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Existe uma maneira de passar funções como parâmetros, mas eu acho feio e tão antipático quanto passar funções em C usando ponteiros. Matz, o criador do Ruby, diz ter um bom motivo para escolher &lt;a href="http://www.artima.com/intv/closures.html"&gt;como os blocos e closures funcionam em Ruby&lt;/a&gt;, mas não gostei muito não. Talvez eu não tenha entendido. :)&lt;br /&gt;
&lt;br /&gt;
Acho que muita gente concorda comigo, tanto que há um incentivo para que funções não sejam passadas como argumentos, mas sim que blocos de procedimentos sejam criados em tempo de execução e que esses blocos sejam passados como argumentos. Na verdade passar blocos é passar uma função como argumento mas... Ahn, ficou confuso? O código fica assim:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;def soma(ini, fim)
  r = 0
  for i in (ini...(fim + 1))
    r = r + yield(i)
  end
  r
end
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Aqui &lt;strong&gt;yield&lt;/strong&gt; representa o bloco passado como argumento e a maneira de chamar a função soma é:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;soma(1, 10) do |i|
  func(i)
end
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Mas eu desconfio que um &lt;em&gt;rubysta&lt;/em&gt; faria a coisa confusa:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;r = 0
(1...11).each do |i|
  r = r + i*i
end
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Talvez essa brincadeira de passar blocos e criar funções em tempo de execução que seja a parte dita funcional de Ruby, mas ainda não sei. Se você tiver alguns exemplos de práticas bem funcionais em Ruby ou Python, por favor, participe nos comentários.&lt;br /&gt;
&lt;br /&gt;
Algo muito parecido pode ser feito com Python, fica como exercício para o leitor implementar e se divertir. =)&lt;br /&gt;
&lt;br /&gt;
Espero que essas comparações entre as linguagens tenham sido interessantes e tenha acrescentado algo na vida dos leitores. Quem sabe não consegui ajudar algum iniciante a escolher qual linguagem aprender primeiro ou até mesmo a um programador mais experiente a aprender a olhar outras linguagens para descobrir outras maneiras de resolver os problemas que aparecem no dia a dia.&lt;br /&gt;
&lt;br /&gt;
Sintam-se livres para criticar o código acima, sugerir outras implementações ou até mesmo mostrar como vocês fariam o somatório na sua linguagem preferida. Ah! Fico devendo uma cerveja para o primeiro que mostrar a implementação do somatório em &lt;a href="http://pt.wikipedia.org/wiki/Brainfuck"&gt;brainfuck&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-7039010860619637203?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=VqbiGUZyvyI:MPz4qSAec4Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/11/uma-comparacao-ingenua-entre-algumas.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-6879379431868883344</guid><pubDate>Thu, 29 Oct 2009 00:34:00 +0000</pubDate><atom:updated>2009-10-28T17:34:17.863-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cultura Nerd</category><category domain="http://www.blogger.com/atom/ns#">Motivação</category><category domain="http://www.blogger.com/atom/ns#">Humor</category><title>Alfaces</title><description>&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ay26Dmqa_8U/StUZf2q4_DI/AAAAAAAAA1c/2i7JdDtpQM0/s1600-h/alfaces.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5392244163888086066" src="http://3.bp.blogspot.com/_Ay26Dmqa_8U/StUZf2q4_DI/AAAAAAAAA1c/2i7JdDtpQM0/s400/alfaces.jpg" style="cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 364px;" /&gt;&lt;/a&gt;Alfaces: são amigas, não comida.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-6879379431868883344?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=QZgc5FdH130:LrUYyHoqjqw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/10/alfaces.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Ay26Dmqa_8U/StUZf2q4_DI/AAAAAAAAA1c/2i7JdDtpQM0/s72-c/alfaces.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-3103774589537506210</guid><pubDate>Tue, 13 Oct 2009 13:16:00 +0000</pubDate><atom:updated>2009-10-13T06:25:00.991-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cultura Nerd</category><category domain="http://www.blogger.com/atom/ns#">Humor</category><title>VEGETARIANOS: Não possuem colesterol</title><description>Caí em tentação e acabei fazendo meu primeiro post (des?)motivacional:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ay26Dmqa_8U/StR-0RJuZBI/AAAAAAAAA1U/z-a1rkNYtvw/s1600-h/vegetarianos2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 265px;" src="http://2.bp.blogspot.com/_Ay26Dmqa_8U/StR-0RJuZBI/AAAAAAAAA1U/z-a1rkNYtvw/s400/vegetarianos2.jpg" alt="" id="BLOGGER_PHOTO_ID_5392074090291815442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por sugestão do Agripino, coloquei essa legenda:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ay26Dmqa_8U/StR-jaGzSYI/AAAAAAAAA1M/4SRzasXIcAE/s1600-h/automotivator.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 264px;" src="http://3.bp.blogspot.com/_Ay26Dmqa_8U/StR-jaGzSYI/AAAAAAAAA1M/4SRzasXIcAE/s400/automotivator.jpg" alt="" id="BLOGGER_PHOTO_ID_5392073800637696386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Se tiver afim de fazer os seus, pode usar o &lt;a href="http://wigflip.com/automotivator/"&gt;automotivator&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-3103774589537506210?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=pUucAk7QPqs:0clgnem8CXE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/10/vegetarianos-nao-possuem-colesterol.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Ay26Dmqa_8U/StR-0RJuZBI/AAAAAAAAA1U/z-a1rkNYtvw/s72-c/vegetarianos2.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-6068968964481023520</guid><pubDate>Sun, 04 Oct 2009 23:21:00 +0000</pubDate><atom:updated>2009-10-12T12:19:11.532-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Scheme</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><category domain="http://www.blogger.com/atom/ns#">Cultura Nerd</category><title>Scheme - Uma linguagem folclórica</title><description>O &lt;a href="http://en.wikipedia.org/wiki/Scheme_%28programming_language%29"&gt;Scheme&lt;/a&gt; é um dialeto da famosíssima linguagem &lt;a href="http://en.wikipedia.org/wiki/Lisp_%28programming_language%29"&gt;LISP&lt;/a&gt;, criada pelo cientista da computação &lt;a href="http://en.wikipedia.org/wiki/John_McCarthy_%28computer_scientist%29"&gt;John McCarthy&lt;/a&gt;, inspirada pela teoria matemática chamada de cálculo lambda. LISP também foi amplamente utilizada em pesquisas na área de inteligência artificial e foi provavelmente dela que surgiu o conceito de lista encadeada.&lt;br /&gt;
Eu não faço a menor idéia de como é hoje a linguagem LISP para quem quer trabalhar como programador, mas eu resolvi aprender essa linguagem devido ao fato dela ser uma linguagem que implementa muito bem o paradigma de &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;programação funcional&lt;/a&gt; e como até hoje eu só aprendi um pouco de linguagens estruturadas, como a linguagem C,  e um pouco de linguagens orientadas a objetos, como Python e Ruby, resolvi conhecer qualé a desse paradigma. Tá, eu sei que Python e Ruby são multi paradigma, mas elas dão ênfase na programação orientada a objetos!&lt;br /&gt;
Mas, voltando ao assunto original, como não quero trabalhar como programador, acho que posso me dar ao luxo de aprender qualquer tipo de linguagem, por menos prática que ela seja, apenas pelo prazer de aprender. E um outro motivo para eu querer aprender Scheme é que o Emacs usa elisp, mais um dos dialetos de LISP, e aparentemente tem uma galera querendo fazer o Emacs funcionar também com Scheme. Só que não faço a menor idéia de como é a compatibilidade do Scheme com Elisp...&lt;br /&gt;
Obviamente, Emacs também é uma excelente ferramenta para programar em Scheme! Ouvi falar que muita gente, mesmo os defensores da seita do VI, largam seus editores/IDEs/SOs favoritos apenas para programar Scheme no Emacs!&lt;br /&gt;
Aprendo Scheme por causa do Emacs, e aprendo Emacs por causa do Scheme, parece que caí num ciclo vicioso, mas não, eu queria aprender ambas as coisas desde o início.&lt;br /&gt;
Bem, deixa de enrolação, esse texto era sobre o que eu tenho feito feito para aprender Scheme, usando o Emacs e por que tudo isso é muito divertido. Então, como usar decentemente o Emacs para programar em Scheme?&lt;br /&gt;
A primeira coisa é decidir qual interpretador de Scheme usar, eu escolhi o &lt;a href="http://en.wikipedia.org/wiki/GNU_Guile"&gt;Guile&lt;/a&gt;. O interpretador GNU Guile, não o &lt;a href="http://en.wikipedia.org/wiki/Guile_%28Street_Fighter%29"&gt;personagem do street fighter&lt;/a&gt;!&lt;br /&gt;
Agora basta configurar o Emacs para usar o Guile, para tal, basta colocar no ~/.Emacs a seguinte linha:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(setq Scheme-program-name "guile") ;; Sonic boom!
&lt;/code&gt;&lt;/pre&gt;Então basta recarregar o Emacs ou ir deixar o cursor no final da linha anterior e mandar o Emacs executar o código elisp: &lt;b&gt;C-x C-e&lt;/b&gt;.&lt;br /&gt;
Agora vem a parte mais legal, que é a integração do Emacs com o interpretador guile, que funciona bem que é uma maravilha! Eu faço assim, sempre que vou estudar Scheme eu abro duas janelas no Emacs, deixo uma para escrever o código e outra com o interpretador Scheme.&lt;br /&gt;
Conforme eu programo, eu peço para o Emacs enviar uma linha ou um bloco de texto direto para o guile, assim eu consigo testar pedaços do programa em tempo de programação, sem ter que ficar montando um programa inteiro para só depois analisar o que um trecho de código faz.&lt;br /&gt;
Bem, pode ter sido confuso isso que descrevi acima, mas funciona assim, eu primeiro digito &lt;b&gt;C-x C-3&lt;/b&gt; para abrir uma janela nova, então vou na segunda janela, executando C-x o, nessa segunda janela eu executo o comando &lt;b&gt;M-x run-Scheme&lt;/b&gt; e o interpretador fica rodando. Voltando para a primeira janela já podemos começar a programar, então vamos tentar digitar o mais clássicos programa de todos os tempos, um hello world em Scheme! Digite o seguinte código na janela para programar:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(display "Hello World!")
&lt;/code&gt;&lt;/pre&gt;Agora, com o cursor no final da string, execute &lt;b&gt;C-x C-e&lt;/b&gt;, e &lt;i&gt;tcharam!&lt;/i&gt; o Emacs enviou a linha inteira para o interpretador, que, err, interpretou o código e mostrou a saída! Bem legal, hein?&lt;br /&gt;
E ainda dá para fazer mais, dá para enviar um bloco de texto inteiro para o interpretador, e é bem fácil, primeiro você escreve um código que tem mais de uma linha, então seleciona o bloco e em seguida você roda &lt;b&gt;C-x C-r&lt;/b&gt;. Aqui vai um exemplo de código para você testar:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(define (factorial n)
  (if (= n 1)
    1
    (* n (factorial (- n 1)))))

(factorial 30)
&lt;/code&gt;&lt;/pre&gt;Se você não se lembra como se seleciona um trecho de código usando Emacs isso é realmente muito simples, basta apertar &lt;b&gt;M-x espace&lt;/b&gt; com o cursor onde você quer que o bloco comece, então movimente o cursor até o final do bloco e toda a região delimitada pela posição atual do cursor e a parte onde o início do bloco foi marcado. Agora é só executar &lt;b&gt;C-c C-r&lt;/b&gt;.&lt;br /&gt;
Espero que as informações acima sirvam para quem está começando com Scheme e queira usar Emacs para programar e, caso você comece a estudar Scheme também, fale comigo e podemos aprender um pouco juntos, discutir umas idéias, trocar uns códigos e coisas assim. Se tiver curiosidade, deixe um comentário ou entre em contato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-6068968964481023520?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=mkwogjW96fU:XED8_Lf0cFU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/10/scheme-uma-linguagem-folclorica.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-7958509393224620979</guid><pubDate>Sat, 12 Sep 2009 16:18:00 +0000</pubDate><atom:updated>2009-09-12T09:18:26.380-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cultura Nerd</category><category domain="http://www.blogger.com/atom/ns#">Humor</category><title>RE: Your Brains</title><description>Alguém há algumas semanas me enviou um &lt;i&gt;mp3&lt;/i&gt;, o nome do arquivo é &lt;i&gt;Re: Your Brains&lt;/i&gt;. Não faço a menor ideia de quem foi que enviou e acabei deixando o &lt;i&gt;mp3&lt;/i&gt; aqui largado no meu &lt;i&gt;Desktop&lt;/i&gt; com um monte de outros arquivos aleatórios.&lt;br /&gt;
&lt;br /&gt;
Sem querer deixei o ponteiro do mouse em cima do arquivo e a música começou a tocar, primeiro eu me assustei, pois eu não tinha mandado meu computador fazer nada, mas logo em seguida percebi o que tinha acontecido e resolvi ouvir a música. E a música é bem legal, tanto pela sonoridade quanto, e principalmente, pela letra! Confiram:&lt;br /&gt;
&lt;br /&gt;
&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OARmqz48Mh0&amp;hl=pt-br&amp;fs=1&amp;rel=0&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OARmqz48Mh0&amp;hl=pt-br&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;RE: Your Brains&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Heya Tom, it's Bob,&lt;br /&gt;
From the office down the hall.&lt;br /&gt;
It's good to see you buddy,&lt;br /&gt;
How've ya been?&lt;br /&gt;
Things have been okay for me,&lt;br /&gt;
Except that I'm a zombie now.&lt;br /&gt;
I really wish you'd let us in.&lt;br /&gt;
I think I speak for all of us when I say I understand&lt;br /&gt;
Why you folks might hesitate to submit to our demands,&lt;br /&gt;
But here's an FYI - you're all gonna die, screaming.&lt;br /&gt;
&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were not unreasonable,&lt;br /&gt;
I mean no-one's gonna eat your eyes&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were at an impasse here,&lt;br /&gt;
Maybe we should compromise.&lt;br /&gt;
If you open up the door,&lt;br /&gt;
We'll all come inside and eat your brains.&lt;br /&gt;
&lt;br /&gt;
I don't wanna nitpick Tom, but is this really your plan -&lt;br /&gt;
Spend your whole life locked inside a mall?&lt;br /&gt;
Maybe that's okay for now,&lt;br /&gt;
But someday you'll be out of food and guns,&lt;br /&gt;
And you'll have to make the call.&lt;br /&gt;
I'm not surprised to see you haven't thought it through enough -&lt;br /&gt;
You never had the head for all that 'bigger picture' stuff.&lt;br /&gt;
But Tom, that's what I do,&lt;br /&gt;
And I plan on eating you, slowly.&lt;br /&gt;
&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were not unreasonable,&lt;br /&gt;
I mean no-one's gonna eat your eyes&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were at an impasse here&lt;br /&gt;
Maybe we should compromise&lt;br /&gt;
If you open up the door,&lt;br /&gt;
We'll all come inside and eat your brains&lt;br /&gt;
&lt;br /&gt;
I'd like to help you Tom,&lt;br /&gt;
In any way I can.&lt;br /&gt;
I sure appreciate the way you're working with me.&lt;br /&gt;
I'm not a monster Tom - well, technically I am...I guess I am...&lt;br /&gt;
&lt;br /&gt;
I've got another meeting Tom;&lt;br /&gt;
Maybe we could wrap it up.&lt;br /&gt;
I know we'll get to common ground somehow.&lt;br /&gt;
Meanwhile I'll report back to my colleagues,&lt;br /&gt;
Who are chewing on the doors.&lt;br /&gt;
I guess we'll table this for now.&lt;br /&gt;
I'm glad to see you take constructive criticism well&lt;br /&gt;
Thank you for your time, I know we're all busy as hell.&lt;br /&gt;
And we'll put this thing to bed,&lt;br /&gt;
When I bash your head open.&lt;br /&gt;
&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were not unreasonable,&lt;br /&gt;
I mean no-one's gonna eat your eyes&lt;br /&gt;
All we wanna do is eat your brains&lt;br /&gt;
Were at an impasse here&lt;br /&gt;
Maybe we should compromise&lt;br /&gt;
If you open up the door,&lt;br /&gt;
We'll all come inside and eat your brains&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-7958509393224620979?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=uQoW5Ghlsys:0DC4-jCbQVg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/09/re-your-brains.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-4656766276162178892</guid><pubDate>Sun, 30 Aug 2009 15:37:00 +0000</pubDate><atom:updated>2009-08-30T08:37:05.800-07:00</atom:updated><title>Pornophonique e Jamendo</title><description>&lt;a href="http://1.bp.blogspot.com/_Ay26Dmqa_8U/SpnoUQMkfiI/AAAAAAAAArc/M79X82c0Q4M/s1600-h/pornophonique.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5375583064886115874" src="http://1.bp.blogspot.com/_Ay26Dmqa_8U/SpnoUQMkfiI/AAAAAAAAArc/M79X82c0Q4M/s320/pornophonique.png" style="cursor: pointer; float: left; height: 91px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt; Pornophonic é uma banda alemã de um estilo alternativo, que mistura rock e música eletrônica com sons de jogos de Gameboy e Commodore 64! Além de ter um pouco de pr0n como inspiração nas músicas!&lt;br /&gt;
&lt;br /&gt;
Gostei de quase todas as músicas do album 8-bit lagerfeuer, mas posso destacar Sad Robot e Space Invaders como minhas preferidas. Inclusive todas as músicas estão disponíveis para download no site do Pornophonic. &lt;br /&gt;
&lt;br /&gt;
Descobri essa banda há quase um ano, enquanto eu navegava no Jamendo, que é uma espécie rede social onde músicos podem publicar seus trabalhos. O interessante do Jamendo é que as músicas são todas distribuídas pela licença Creative Commons, todas com permissão para ouvir e redistribuir. Além disso, existe a possibilidade de os usuários se inscreverem num programa para receberem uma parte dos lucros obtidos com anúncios do site.&lt;br /&gt;
&lt;br /&gt;
No final desse post tem um aplicativo do Jamendo para tocar o álbum, mas caso ele não funcione, na página do album no Jamendo tem várias alternativas para ouvir a música, desde o download de mp3 ou ogg via bit torrent ou até a possibilidade de integrar o site com o Rhythmbox ou Amarok.&lt;br /&gt;
&lt;br /&gt;
&lt;div align="center"&gt;&lt;object width="200" height="300" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" align="middle"&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="movie" value="http://widgets.jamendo.com/en/album/?album_id=7505&amp;playertype=2008&amp;refuid=265493" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed src="http://widgets.jamendo.com/en/album/?album_id=7505&amp;playertype=2008&amp;refuid=265493" quality="high" wmode="transparent" bgcolor="#FFFFFF" width="200" height="300" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&amp;nbsp;&lt;/embed&gt;&amp;nbsp;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-4656766276162178892?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=zUIuAN3Oq6Q:BGTrXar6xj8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/08/pornophonique-e-jamendo.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Ay26Dmqa_8U/SpnoUQMkfiI/AAAAAAAAArc/M79X82c0Q4M/s72-c/pornophonique.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-7835867314426095204</guid><pubDate>Fri, 28 Aug 2009 00:14:00 +0000</pubDate><atom:updated>2009-08-27T17:14:18.902-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Humor</category><title>T.Hanks</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ay26Dmqa_8U/SpchMxZ9peI/AAAAAAAAArU/eIbl5llnf-I/s1600-h/1739.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Ay26Dmqa_8U/SpchMxZ9peI/AAAAAAAAArU/eIbl5llnf-I/s320/1739.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://moronail.net/img/1739_thanks"&gt;http://moronail.net/img/1739_thanks&lt;/a&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-7835867314426095204?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=ULdqMqTMivw:SKFpcaiy2_Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/08/thanks.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Ay26Dmqa_8U/SpchMxZ9peI/AAAAAAAAArU/eIbl5llnf-I/s72-c/1739.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-4756491117290589356</guid><pubDate>Sun, 24 May 2009 20:24:00 +0000</pubDate><atom:updated>2009-05-24T14:08:51.105-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Livre</category><category domain="http://www.blogger.com/atom/ns#">Programação</category><category domain="http://www.blogger.com/atom/ns#">Android</category><title>Programando para Android sem Eclipse</title><description>Eu nunca consegui me acostumar a nenhuma IDE de programação, cheguei a usar Emacs, Anjuta, Eclipse e nem lembro mais quais outras: eu sempre ficava perdido com a quantidade grande de opções e me frustrava. Meu jeito de programar sempre segue o estilo mais clássico, uso um editor de texto bem simples e um terminal para compilar, debugar e executar o programa.&lt;br /&gt;&lt;br /&gt;Esse foi um dos motivos que acabou me afastando por um tempo de começar a programar para Android, sempre que eu pegava um tutorial ele começava explicando como como instalar o Eclipse, depois o plugin e outras coisas mais chatas. Mas tomei vergonha na cara e resolvi descobrir como fazer para não precisar de nenhuma IDE, e até que é mais simples do que eu imaginava.&lt;br /&gt;&lt;br /&gt;Claro, programadores mais experientes podem ganhar muita produtividade usando IDEs como o Eclipse, porém, para iniciantes e estudantes, os métodos clássicos de programação fazem com que se tenha um maior contato com a estrutura do projeto e consequentemente melhor compreensão dos vários fatores relacionados ao desenvolvimento.&lt;br /&gt;&lt;br /&gt;Vou dar dicas de como proceder num sistema Debian, mas que quase com certeza deve funcionar também no Ubuntu. E claro que qualquer pessoa com o mínimo de força de vontade vai conseguir adaptar esse tutorial a outra distribuição ou outro sistema operacional. Estou levando em consideração que o leitor tem alguma familiaridade com o sistema operacional GNU/Linux, que sabe se virar usando linha de comando e que também tem alguma noção de programação.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Instalação&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Primeiro vamos instalar as dependências, que são os pacotes do Java 6 SDK e o Ant, que é uma ferramenta de construção parecida com o make. Como root, execute o seguinte comando para instalar os pacotes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;aptitude install openjdk-6-jdk ant&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Então precisamos &lt;a title="baixar o Android SDK" href="http://developer.android.com/sdk/" id="l1.3"&gt;pegar o Android SDK&lt;/a&gt; e em seguida configurar o ambiente de trabalho. Como gosto de manter meu sistema limpo, eu vou instalar o SDK no meu $HOME. Como usuário comum, vá ao diretório onde foi feito o download do SDK e o descompacte. Então, na linha de comando, siga os seguintes passos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;mkdir ~/bin&lt;br /&gt;mv android-sdk-linux_x86-1.5_r1 ~/bin&lt;br /&gt;ln -sf ~/bin/android-sdk-linux_x86-1.5_r1~/bin/android&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Agora precisamos definir algumas variáveis de ambiente para que alguns programas estejam no &lt;i&gt;path&lt;/i&gt; e que esses programas saibam qual versão ou implementação do Java deve ser usada. Edite o ~/.bashrc adicionando as seguintes linhas no final do arquivo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;## configuração do PATH ##&lt;br /&gt;export PATH="$HOME/bin:$HOME/bin/android/tools:$PATH"&lt;br /&gt;&lt;br /&gt;## configuração do PATH ##&lt;br /&gt;export JAVA_HOME="/usr/lib/jvm/java-6-openjdk/jre/"&lt;br /&gt;export PLUGIN_HOME="$JAVA_HOME/plugin"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Agora basta recarregar as configurações do bash. Você pode simplesmente abrir outra instância do bash, por exemplo, abrindo outra janela do seu terminal gráfico preferido, mas se você estiver com alguma janela aberta, basta executar o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;source ~/.bashrc&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Neste momento o Android deve estar funcionando perfeitamente e a maneira mais fácil de começar a testar é executando o emulador. Mas antes de rodar o emulador, precisamos criar um Android Virtual Device (AVD). Basta executar o comando a seguir:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;android create avd \&lt;br /&gt;--name &lt;i&gt;&lt;nome&gt; \&lt;br /&gt;&lt;/nome&gt;&lt;/i&gt;--target &lt;i&gt;&lt;identificação_do_alvo&gt;&lt;/identificação_do_alvo&gt;&lt;/i&gt;&lt;/pre&gt;&lt;/blockquote&gt;O android vai perguntar se você quer criar uma versão customizada do hardware. Responda que não.&lt;br /&gt;&lt;br /&gt;O &lt;i&gt;target&lt;/i&gt;, ou melhor, o alvo define qual versão do Android e qual especificação de hardware será usada pelo emulador quando você carregar esse AVD.  Para ver a lista de alvos possíveis execute o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;android list target&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Para carregar o emulador, basta executar o comando:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;emulator -avd &lt;identificação_do_alvo&gt;&lt;br /&gt;&lt;/identificação_do_alvo&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:100%;"&gt;Criando um projeto&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Para criar um novo projeto é necessário usar o comando &lt;b&gt;android&lt;/b&gt;, cujos parâmetros de linha de comando são:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Parâmetros para a ação "criar projeto"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;table class="" id="i7r3" width="100%" border="1" bordercolor="#000000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="33%"&gt;Parâmetro curto&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Parâmetro longo&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Descrição&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33%"&gt;-k&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;--package&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Esse é o &lt;a title="nome de pacote" href="http://en.wikipedia.org/wiki/Java_package" id="sz_a"&gt;nome de pacote&lt;/a&gt; do seu programa. Ele deve ser escolhido para ser único, e deve seguir as &lt;a title="especificações de nome de pacote da linguagem Java" href="http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7" id="n47d"&gt;especificações de nome de pacote da linguagem Java&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33%"&gt;-n&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;--name&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Nome do projeto. É esse o nome que os usuários do seu programa verão.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33%"&gt;-a&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;--activity&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Nome da &lt;a title="classe Activity" href="http://developer.android.com/reference/android/app/Activity.html" id="ca51"&gt;classe Activity&lt;/a&gt; do seu projeto. Essa é a classe que vai interagir com o usuário.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33%"&gt;-t&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;--target&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Esse parâmetro define qual será o "alvo de construção" do seu projeto. Esse alvo é qual versão do Android e qual especificação de hardware será usada pelo seu projeto. Digite &lt;b&gt;android list target&lt;/b&gt; na linha de comando para ver a lista de alvos possíveis&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="33%"&gt;-p&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;--path&lt;br /&gt;&lt;/td&gt;&lt;td width="33%"&gt;Caminho para o diretório onde ficará seu novo projeto&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Aqui está um exemplo de criação de projeto:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;android create project \&lt;br /&gt;--package com.exemplo.jahnke.helloworld \&lt;br /&gt;--name HelloWorld \&lt;br /&gt;--activity HelloWorld \&lt;br /&gt;--target 1 \&lt;br /&gt;--path ~/projetos/android/helloworld&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Programando&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos implementar o Hello World no Android. A partir de agora vou supor que você está no diretírio especificado no &lt;i&gt;path&lt;/i&gt; do comando anterior.&lt;br /&gt;&lt;br /&gt;Use seu editor de texto preferido para abrir o arquivo &lt;i&gt;src/com/exemplo/jahnke/helloworld/HelloWorld.java&lt;/i&gt; e o modifique para que ele fique assim:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;package com.exemplo.jahnke.helloworld;&lt;br /&gt;&lt;br /&gt;import android.app.Activity;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import android.widget.TextView;&lt;br /&gt;&lt;br /&gt;public class HelloWorld extends Activity&lt;br /&gt;{&lt;br /&gt;  /** Called when the activity is first created. */&lt;br /&gt;  @Override&lt;br /&gt;  public void onCreate(Bundle savedInstanceState)&lt;br /&gt;  {&lt;br /&gt;      super.onCreate(savedInstanceState);&lt;br /&gt;&lt;br /&gt;              TextView text_view = new TextView(this);&lt;br /&gt;              text_view.setText("Olá mundo!");&lt;br /&gt;&lt;br /&gt;              setContentView(text_view);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Compilando e instalando&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O Ant é usado para compilar e instalar os aplicativos e seu uso é bem simples. Para compilar e instalar o aplicativo que acabamos de criar, basta executar os comandos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ant debug&lt;br /&gt;ant install&lt;br /&gt;&lt;/blockquote&gt;Se você modificar o aplicativo e quiser reinstalar, também é super simples, basta executar:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ant debug&lt;br /&gt;ant &lt;b&gt;re&lt;/b&gt;install&lt;br /&gt;&lt;/blockquote&gt;Agora o programa já deve estar acessível pelo emulador.&lt;br /&gt;&lt;br /&gt;Espero que você tenha gostado do meu texto, e se você gostou do exemplo e estiver empolgado para continuar aprendendo a desenvolver para Android, o próximo passo é ler sobre os &lt;a title="fundamentos dos aplicativos do Android" href="http://developer.android.com/guide/topics/fundamentals.html" id="y946"&gt;fundamentos dos aplicativos do Android&lt;/a&gt;. Caso tenha alguma crítica, sinta-se livre para participar nos comentários.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-4756491117290589356?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=xl0rUnaIAf0:e4dUSHP2qCE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/05/programando-para-android-sem-eclipse.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-739912932315781407</guid><pubDate>Tue, 12 May 2009 12:12:00 +0000</pubDate><atom:updated>2009-10-16T06:02:37.280-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Jogos</category><category domain="http://www.blogger.com/atom/ns#">Playstation 2</category><category domain="http://www.blogger.com/atom/ns#">Opinião</category><title>Não jogue seu PS2 pela janela??</title><description>Tô muito puto da vida, eu estava muito feliz com a quantidade de &lt;a href="http://maxjahnke.blogspot.com/2009/04/nao-jogue-seu-ps2-pela-janela.html"&gt;jogos que serão lançados para Playstation 2&lt;/a&gt;. Eu fiquei pensando &lt;i&gt;"pô, se &lt;a href="http://maxjahnke.blogspot.com/2009/05/black.html"&gt;Black&lt;/a&gt; ficou lindão assim, então os novos jogos devem ter uma qualidade parecida"&lt;/i&gt;, mas eu estava enganado!&lt;br /&gt;
&lt;br /&gt;
Tive duas desilusões, primeiro vi o lançamento &lt;i&gt;Star Wars: The Force Unleashed,&lt;/i&gt; vi que uma das plataformas do jogo era o PS2 e resolvi testar o jogo. Achei meio sem graça, meio travado. Os gráficos até que eram legais, mas eu sentia que faltava alguma coisa. Acabei concluindo que a falta de um processador potente impedia uma simulação física mais detalhada e isso tirava um pouco da graça do jogo. Nunca mais peguei o DVD para jogar.&lt;br /&gt;
&lt;br /&gt;
Agora algo parecido aconteceu novamente, peguei o DVD do &lt;i&gt;X-Men Origins: Wolverine&lt;/i&gt; para Playstation 2. Porra, ao invés de trabalharem o jogo direito para ter um visual pelo menos parecido com &lt;i&gt;God of War II&lt;/i&gt;, tenho a impressão de que pegaram a engine do jogo e desabilitaram todos os efeitos gráficos legais, tiraram todas as texturas bonitas e todo o polimento. Os personagens do jogo são tão quadrados que os gráficos lembram os jogos de PSX, além disso, a jogabilidade é travada pra caramba. Desconfio que o mesmo aconteça para a versão PSP e, talvez, para Wii.&lt;br /&gt;
&lt;br /&gt;
Além disso, um amigo que tem um Xbox 360 me confirmou que o começo do jogo é super empolgante e bem mais divertido que o filme mas que pelo fato do jogo ter tido a obrigação de ser lançado perto da data de lançamento do filme, ele ficou com bugs e defeitos feios nos gráficos, que ficam mais evidentes no final do jogo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-739912932315781407?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=u9KlQrZ1w3U:6jUg1QDcJcw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/05/nao-jogue-seu-ps2-pela-janela.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-1664286126422039484</guid><pubDate>Wed, 06 May 2009 13:54:00 +0000</pubDate><atom:updated>2009-05-22T21:36:45.518-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Jogos</category><category domain="http://www.blogger.com/atom/ns#">Playstation 2</category><title>Black</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SgGWktU-3vI/AAAAAAAAAjA/WT-9IKmYXfw/s1600-h/Black_Coverart.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SgGWktU-3vI/AAAAAAAAAjA/WT-9IKmYXfw/s320/Black_Coverart.png" /&gt;&lt;/a&gt;&lt;/div&gt;Black é um jogo de tiro em primeira pessoa desenvolvido pela Criteriom Games, a mesma empresa que desenvolveu a fantástica série de jogos Burnout.&lt;br /&gt;
&lt;br /&gt;
O jogo tem um estilo muito próximo dos filmes de ação de Hollywood, com direito a armamento pesado, muitas explosões e inimigos morrendo cinematograficamente. Por exemplo, se você jogar uma bomba ou atirar um míssil em uma pequena sala com janelas, a parte de dentro da sala será completamente destruída e os ocupantes serão lançados pela janela de uma maneira espetacular!&lt;br /&gt;
&lt;br /&gt;
Para completar a dinâmica hollywoodiana, o ambiente é extremamente destrutível, e depois do combate a devastação é evidente. Carros acabados, colunas caídas, marcas de explosão e muito mais. Uma grande injeção de adrenalina, certamente.&lt;br /&gt;
&lt;br /&gt;
Além do estilo cinematográfico, o jogo tem gráficos incríveis, comparáveis aos gráficos de jogos de Xbox 360 e PS3 e a trilha sonora é bem empolgante. Ter um bom home theater certamente vai incrementar muito a diversão.&lt;br /&gt;
&lt;br /&gt;
Infelizmente existem uns problemas: o jogo é bem curto, são apenas 7 missões que podem ser terminadas em 1 ou 2 horas, o jeito é colocar no hard logo no início para tentar aproveitar o jogo por um tempo maior. Além disso, a IA do jogo não é das melhores, mais um motivo para iniciar o jogo em um modo mais difícil.&lt;br /&gt;
&lt;br /&gt;
Sendo um jogo voltado à ação e à adrenalina, não dá para esperar uma história muito profunda. Eu mesmo ignorei completamente a história quando joguei. Até fiquei meio cansado de assistir os vídeos, que infelizmente não podem ser pulados, antes do começo de cada fase.&lt;br /&gt;
&lt;br /&gt;
Apesar dos defeitos citados, acho que vale a pena conferir o jogo, pois a adrenalina realmente compensa, os gráficos são excelentes e a dificuldade pode render uma ou duas tardes de muita diversão.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-1664286126422039484?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=wzGqBsBc4zk:MRfhcJSprk8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/05/black.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SgGWktU-3vI/AAAAAAAAAjA/WT-9IKmYXfw/s72-c/Black_Coverart.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-8124644587491852467</guid><pubDate>Wed, 29 Apr 2009 18:35:00 +0000</pubDate><atom:updated>2009-05-22T21:36:58.396-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Jogos</category><category domain="http://www.blogger.com/atom/ns#">Playstation 2</category><title>Não jogue seu PS2 pela janela!</title><description>Muita gente anda empolgada demais com Playstation 3, Xbox 360 e com o Nintendo Wii e se esqueceram do antigo PS2. Apesar de o PS3 ter sido lançado há alguns anos, o Playstation 2 continua vivo, muitos jogos interessante foram feitos e, incrivelmente, muitas empresas continuam lançando jogos para o PS2.&lt;br /&gt;
&lt;br /&gt;
O IGN, que é um site sobre entretenimento que dá atenção especial a videogames, possui uma lista com vários jogos de PS2 que serão lançados em 2009 e nos próximos anos. Um dos jogos que provavelmente fará sucesso é o X-Men Origins: Wolverine, com lançamento marcado para o dia 1 de maio de 2009. Mas tem vários outros jogos na fila para serem lançados, eu contei 137 jogos para serem lançados até maio de 2012!&lt;br /&gt;
&lt;br /&gt;
Além disso, existem vários jogos muito bons que foram lançados para PS2 nos últimos anos. Eu gostei dos seguintes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Black&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SHYNRbP_74Y&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/SHYNRbP_74Y&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Black, jogo de tiro em primeira pessoa desenvolvido pela Criteriom Games, a mesma empresa que desenvolveu a fantástica série de jogos Burnout. A ação do jogo tem um estilo muito próximo dos filmes de ação de Hollywood, com direito a armamento pesado, muitas explosões e inimigos morrendo cinematograficamente.&lt;br /&gt;
&lt;br /&gt;
Confira também o meu &lt;a href="http://maxjahnke.blogspot.com/2009/05/black.html"&gt;review de Black&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Burnout Takedown 3&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8LCZ0hknnm8&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/8LCZ0hknnm8&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Com o mesmo espírito de "Black" esse jogo da Criteriom Games consegue, mesmo indo contra o paradigma dos jogos de corrida, ser incrível e alucinante.&lt;br /&gt;
&lt;br /&gt;
Ao contrário dos jogos de corrida mais populares como Gran Turismo, o realismo não é importante na série Burnout: a alta velocidade e colisões entre os carros são os atrativos do jogo. Ao fazer manobras arriscadas, andar na contra mão ou jogar os oponentes para fora da pista, ganha-se um combustível especial que pode ser usado para atingir uma velocidade impressionante, o que torna o jogo muito empolgante e desafiador.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Dragon Ball Z - Tenkaichi 3&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/T4DZ3hm3XJY&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/T4DZ3hm3XJY&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Esse é um dos poucos jogos de luta que gostei de jogar. Adorei poder brigar com e contra os meus personagens favoritos do anime Dragon Ball, relembrei um pouco da história no modo history e pude me divertir com jogando contra os meus amigos. Um ótimo jogo para se jogar sozinho ou com uma galera!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Metal Gear Solid 3 - Substance&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NxGUPVB3-ZE&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NxGUPVB3-ZE&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Sou um grande fã de toda a série Metal Gear, mas Metal Gear Solid 3 - Substante é o meu favorito. O jogo é, em essência o, mesmo que o Metal Gear Solid 3 - Snake Eater, mas com a possibilidade de usar uma câmera 3D, que melhora muito a jogabilidade, facilita a visualização dos inimigos e ainda melhora a contemplação dos belos cenários do jogo.&lt;br /&gt;
&lt;br /&gt;
Esse foi o jogo mais interessante que joguei até hoje no PS2, terminei o jogo várias vezes e não me cansei até terminar o jogo no modo Extreme, sem matar nenhum personagem, sem acionar nenhum alerta e em menos de 5 horas! Obtive o melhor rank, o Fox Hound!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;God of War I &amp;amp; II&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
God of War I&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hxp5UWSkhgM&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/hxp5UWSkhgM&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
God of War II&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uycTT_S2nH8&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/uycTT_S2nH8&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Mais dois jogos onde a ação e a violência estão em primeiro lugar, mas, ao contrário do que se pode esperar, isso torna o jogo muito empolgante, do início ao fim. Com inimigos desafiadores e vários puzzles para serem resolvidos, God of War I e II estão entre os jogos de Playstaion 2 que fazem mais sucesso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Persona 4&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/GJt2ZnL9eTQ&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/GJt2ZnL9eTQ&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Jogo de RPG que sai bastante do padrão dos jogos desse gênero. A história se passa na Tokio de 2011, e tem uma trama policial, que envolve sequestros e assassinatos. Esse jogo é bem longo, estou em mais de 70 horas de jogo e ainda não consegui terminar!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-8124644587491852467?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=xubbql0PESA:x5fvxG2mKfA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/04/nao-jogue-seu-ps2-pela-janela.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-4922959817510506049</guid><pubDate>Tue, 21 Apr 2009 19:10:00 +0000</pubDate><atom:updated>2009-10-16T06:03:42.495-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Opinião</category><title>Pateta no trânsito</title><description>Nunca tive dúvidas que no transito de São Paulo existem muitos motoristas mal educados, que compraram suas carteiras e não possuem nenhum respeito pelos outros motoristas, pelos pedestres e que, além disso, não fazem nenhuma questão de seguir às leis de trânsito.&lt;br /&gt;
&lt;br /&gt;
Normalmente eu percebia erros "bobos" como carros estacionados em locais proibidos, ou em cima da faixa de pedestres, só que recentemente percebi algo ainda mais chato que isso: os motoristas abusam do uso da buzina do carro.&lt;br /&gt;
&lt;br /&gt;
Acho que por serem apressados e estressados demais, acabam ficando irritados sempre que o transito fica um pouco mais lento e, se um carro na frente demora um pouco para manobrar e estacionar, o motorista do carro de trás buzina, mas não é uma buzinada qualquer, é uma buzinada longa, bem longa.&lt;br /&gt;
&lt;br /&gt;
O que mais me incomoda é que isso parece contaminar os carros que estão por perto, assim um, ou mais, carros acabam buzinando, seja por incentivo do primeiro mal educado, seja pela incrível perda de alguns segundos da vida deles. Às vezes, até carros da outra pista acabam buzinando também, aumentando, e muito, a poluição sonora da cidade.&lt;br /&gt;
&lt;br /&gt;
Algumas pessoas podem achar que estou reclamando de uma coisa a toa, sem importância, mas não é, imagine a seguinte cena: pessoas estão andando numa calçada muito cheia e uma pessoa derruba alguma coisa e demora alguns segundos para se abaixar, pegar, levantar e voltar a andar. Então o cara que estava logo atrás dá um grito - Seu filho da puta, você está me atrasando - e outros gritam também. Seria extremamente constrangedor e irritante, não concorda?&lt;br /&gt;
&lt;br /&gt;
Essa tremenda falta de educação não ocorre no dia a dia com pessoa normais caminhando na rua, mas acontece com motoristas, por quê? Eu acho que a resposta é simples, o carro é como se fosse uma couraça, uma proteção e como o motorista sabe que dificilmente seria fisicamente agredido, ele parte para a ignorância da buzina, do insulto.&lt;br /&gt;
&lt;br /&gt;
Quando eu mostrei um rascunho desse texto para um amigo, ele me mandou um vídeo do Pateta, chamado "Pateta no trânsito" que ilustra o que eu queria dizer, e, além disso, me deu um &lt;span id="bad_word"&gt;ótimo&lt;/span&gt; título para esse texto. Vejam abaixo o vídeo:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt; &lt;param name="movie" value="http://www.youtube.com/v/RMZ3bsrtJZ0&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/RMZ3bsrtJZ0&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-4922959817510506049?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=UogAJUI1hsQ:q434BLmomho:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2009/04/pateta-no-transito.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-3880907111437011904</guid><pubDate>Tue, 02 Dec 2008 20:06:00 +0000</pubDate><atom:updated>2009-05-23T20:27:50.336-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Relatos</category><title>Como acabar com espinhas</title><description>Tive &lt;a href="http://pt.wikipedia.org/wiki/Acne" id="qo28" title="espinhas"&gt;espinhas&lt;/a&gt; durante muitos anos. Elas começaram a aparecer quando eu tinha uns 13 ou 14 anos e me incomodaram muito até meus 22 anos. Meu problema era causado pelo excesso de oleosidade da pele. Eu tentei controlar a oleosidade de várias formas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tentei vários produtos milagrosos;&lt;/li&gt;&lt;li&gt;Mudei minha alimentação;&lt;/li&gt;&lt;li&gt;Passei a lavar meu rosto várias vezes por dia;&lt;/li&gt;&lt;li&gt;Usei produtos específicos para diminuir a oleosidade;&lt;/li&gt;&lt;li&gt;Passei a usar sabonetes bactericidas próprios para diminuir a oleosidade da pele.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Essa lista está organizada mais ou menos na ordem em que as coisas pareceram funcionar. A lógica por trás dessas idéias é simples: a pele fica suada, as bactérias adoram, se multiplicam e acabam sendo uma das responsáveis pela infecção das glândulas sebáceas.&lt;br /&gt;&lt;br /&gt;Não coloquei na lista acima, mas a coisa mais eficiente que ocorreu comigo foi eu ter tomado uma &lt;a href="http://pt.wikipedia.org/wiki/Benzilpenicilina_Benzatina_%28Benzetacil%29" id="z9m1" title="benzetacil"&gt;benzetacil&lt;/a&gt;. Dois dias depois minhas espinhas estavam secas; quatro dias não havia mais infecções. Uma maravilha! ...que durou apenas quatro semanas, aproximadamente.&lt;br /&gt;&lt;br /&gt;Infelizmente antibióticos fazem muito mal a saúde, e só devem ser tomados quando for realmente necessário, então eu não pude fazer mais experimentos.&lt;br /&gt;&lt;br /&gt;Como eu tinha falado, usar sabonetes bactericidas próprios para diminuir a oleosidade foi a coisa mais eficiente que eu fiz. Eu passei a andar com um sabonete líquido na mochila e adquiri um hábito, sempre que eu escovava meus dentes, eu aproveitava para lavar o rosto.&lt;br /&gt;&lt;br /&gt;Isso funcionou bem, mas não resolveu completamente meu problema. Eu não tinha espinhas apenas nas no rosto, eu tinha no pescoço, ombros e costas. E eu não podia tomar banho sempre que eu escovava meus dentes!&lt;br /&gt;&lt;br /&gt;Acabei tomando vergonha na cara e decidi que eu tinha que ir ao dermatologista, mas minha preguiça sempre foi maior que minha motivação. Quem realmente se esforçou nessa hora foi minha namorada, Tatiana. Foi ela quem marcou e remarcou o dermatologista até que eu conseguisse me lembrar do dia marcado antes desse dia passar.&lt;br /&gt;&lt;br /&gt;Fui ao dermatologista, expliquei minha situação e ele falou que meu problema de excesso de oleosidade na pele é causado pelas minhas glândulas sebáceas que trabalham muito mais do que deveriam.&lt;br /&gt;&lt;br /&gt;Ele também me falou que o excesso de ferimentos expostos acaba me deixando exposto a vírus, fungos e bactérias e que era importante eu fazer o tratamento para evitar doenças mais graves.&lt;br /&gt;&lt;br /&gt;Só para constar: ele não fez esse comentário só para ganhar um novo cliente, pois ele é médico do &lt;a href="http://www.hu.usp.br/" id="g9os" title="Hospital Universitário"&gt;Hospital Universitário&lt;/a&gt;, onde os alunos são atendidos gratuitamente.&lt;br /&gt;&lt;br /&gt;Ele foi bem claro ao explicar o que eu já sabia, não adianta eu usar produtos ou tomar remédios antibióticos, pois assim que eu parar de usar o produto, ou quando o efeito do antibiótico passar, as bactérias voltariam e fariam a festa.&lt;br /&gt;&lt;br /&gt;O tratamento deveria ser mais agressivo, seria necessário atrofiar várias glândulas! E a maneira de conseguir isso é com uma substância chamada &lt;a href="http://pt.wikipedia.org/wiki/Isotretino%C3%ADna" id="zu_7" title="isotretinoína"&gt;isotretinoína&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A isotretinoína é vendida com o nome comercial de Roacutan, mas tem genérico e alternativas, se me lembro bem.&lt;br /&gt;&lt;br /&gt;Essa substância é controlada, pode fazer mal ao fígado, ao cérebro, pode causar depressão e houve até casos de suicídio. Se o paciente for uma mulher, tudo pode se complicar ainda mais, se uma grávida tomar esse remédio, a isotretinoína pode prejudicar o feto, causando desde deformidades até aborto.&lt;br /&gt;&lt;br /&gt;Feliz, ou infelizmente, eu não poderia começar esse tratamento no H.U., não sei exatamente o motivo, o médico explicou mas não lembro. Foi então que começou minha tristeza, eu teria que fazer um tratamento pago, pois, além do H.U., qualquer outro hospital público de São Paulo é uma droga.&lt;br /&gt;&lt;br /&gt;Funciona assim, não dá para simplesmente marcar uma consulta com um dermatologista, é necessário marcar com o clínico geral para esse te mandar para o médico correto. Então o tempo de espera cresce muito. O tempo de espera para marcar uma consulta com o clínico é de no mínimo três meses, depois para marcar com o dermatologista, pelo menos mais dois meses. Isso sem contar o tempo até ter os exames e tudo o mais.&lt;br /&gt;&lt;br /&gt;Foi aí que a Tati me ajudou outra vez, ela ligou para metade dos dermatologistas de São Paulo, conferiu valores, qualidade de atendimento, localização, horário das consultas. Tudo para que eu conseguisse me tratar sem gastar demais nem atrapalhar meu curso.&lt;br /&gt;&lt;br /&gt;Bem, fiz uma tonelada de exames de sangue, mostrei pra minha dermatologista, ela viu que eu podia fazer o tratamento, assinou mais uma tonelada de papéis, pediu autorização pro governador, presidente, papa, tudo em 42 vias autenticadas e devidamente registradas.&lt;br /&gt;&lt;br /&gt;Finalmente comecei o tratamento, o remédio é forte que só a p... e os resultados começaram a aparecer rapidamente:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pele&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A oleosidade sumiu rapidamente, em alguns dias minha pele estava seca e meio avermelhada, as espinhas sumiram completamente em um mês. Minha pele ficou tão seca que eu não podia lavar o rosto mais do que duas vezes por dia, além disso eu precisava usar protetor solar o dia inteiro.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Olhos&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ficaram tão secos, mas tão secos que eu precisava pingar lubrificante para os olhos de hora em hora! Sair de dia virou um tormento, eu não conseguia sair se eu não estivesse de óculos escuros, de tão sensíveis que meus olhos ficaram.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lábios&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Manteiga de cacau não resolvia, eles estava secos demais e pareciam absorver rapidamente toda a manteiga, o jeito era usar &lt;i&gt;bepantol&lt;/i&gt; na boca. Um treco que usam para tratar assaduras em bunda de bebê.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cabelo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Junto da pele, meu cabelo também eram oleoso, então o tratamento acabou sendo benéfico para meu cabelo. Meu cabelo ficou menos rebelde, mais liso, mais loiro e bonito. :)&lt;br /&gt;&lt;br /&gt;Além dos sintomas descritos acima, precisei me preocupar e nunca beber mais do que um copo de cerveja por semana, o que não foi nenhum sacrifício para mim, que nunca fui muito fã de bebidas. Mas minha namorada não entendia isso e sempre reclamava que eu não podia beber. Acho que ela pensava que eu gostava de beber e que seria horrível ver ela bebendo cerveja e eu suco de uva.&lt;br /&gt;&lt;br /&gt;Tive também alguns problemas de depressão, distúrbios de sono e irritação, mas não sei se estavam mesmo relacionados ao remédio ou a problemas que eu estava tendo na faculdade, ou até mesmo se os problemas da faculdade eram causados pelos distúrbios de sono e irritação que eram causados pelo remédio! Frase grande e confusa de propósito, para representar como andava minha cabeça na época.&lt;br /&gt;&lt;br /&gt;Ainda hoje, quase um ano depois do tratamento, ainda sinto os olhos um pouco secos, mas felizmente minha pele parece ter uma oleosidade normal, um pouco seca no frio, pouco oleosa no calor, meu cabelo voltou a ser um pouco oleoso e não tive mais problemas com meu sono.&lt;br /&gt;&lt;br /&gt;Só resolvi contar em mais detalhes agora, pois eu queria ter uma confiança de que as espinhas não voltariam, e não voltaram!&lt;br /&gt;&lt;br /&gt;Se você também tem espinhas demais, procure um dermatologista.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Antes, no auge do meu tratamento a base de sabonete bactericida:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SThqUjJbZcI/AAAAAAAAAeA/Jh9N-Ur8GpQ/s1600-h/00026_800x600.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SThqUjJbZcI/AAAAAAAAAeA/Jh9N-Ur8GpQ/s200/00026_800x600.jpg" border="0" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;br /&gt;Depois:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SThqee5EQ7I/AAAAAAAAAeI/JRQqPmlHxXo/s1600-h/00065_800x600.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SThqee5EQ7I/AAAAAAAAAeI/JRQqPmlHxXo/s200/00065_800x600.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-3880907111437011904?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=1bGEJ9k6uQs:beJJKQWrWlY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/12/como-acabar-com-espinhas.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Ay26Dmqa_8U/SThqUjJbZcI/AAAAAAAAAeA/Jh9N-Ur8GpQ/s72-c/00026_800x600.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-7120601224606789701</guid><pubDate>Sun, 16 Nov 2008 19:48:00 +0000</pubDate><atom:updated>2009-05-25T09:10:14.786-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Livre</category><category domain="http://www.blogger.com/atom/ns#">Debian</category><category domain="http://www.blogger.com/atom/ns#">Tutoriais</category><title>Placa Aceleradora Gráfica Intel X4500 HD no Debian "Lenny"</title><description>&lt;a href="http://intellinuxgraphics.org/index.html" id="l1l7" title="A Intel disponibiliza as especificações"&gt;A Intel disponibiliza as especificações&lt;/a&gt; dessa, e de outras, placas gráficas pela licença  &lt;a href="http://creativecommons.org/licenses/by-nc-nd/3.0/us/" id="gjip" title="creative commons"&gt;creative commons (by-nc-nd)&lt;/a&gt;, então ela funciona muito bem no Xorg, com driver livre.&lt;br /&gt;&lt;br /&gt;O Xorg do Lenny não possui drivers para a essa placa, então é necessário instalar pacotes do Debian "Sid", a versão em desenvolvimento do Debian.&lt;br /&gt;&lt;br /&gt;Graças ao APT, não é necessário fazer upgrade de toda a distribuição para a versão instável do Debian. Com apenas algumas configurações, é fácil manter um sistema híbrido.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configurando o APT para manter um sistema híbrido&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Antes de qualquer coisa, temos que deixar claro ao APT que preferimos usar os pacotes do repositório testing.&lt;br /&gt;&lt;br /&gt;Para isso eu criei o arquivo /etc/apt/apt.conf.d/99marvinpreferences:&lt;br /&gt;&lt;blockquote&gt;APT::Default-Release "testing";&lt;/blockquote&gt;&lt;br /&gt;Usei esse nome 99marvinpreferences por se tratar de configurações preferenciais da máquina marvin, o nome que dei ao meu notebook. Sinta-se livre para escolher o nome que lhe agradar para esse arquivo. O único cuidado necessário aqui é manter o arquivo no diretório /etc/apt/apt.conf.d/.&lt;br /&gt;&lt;br /&gt;Precisamos adicionar o repositório sid ao /etc/apt/sources.list, o meu está assim:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;blockquote&gt;# lenny (testing)&lt;br /&gt;deb http://ftp.br.debian.org/debian/ lenny main&lt;br /&gt;deb-src http://ftp.br.debian.org/debian/ lenny main&lt;br /&gt;&lt;br /&gt;# lenny (testing) - atualizações de segurança&lt;br /&gt;deb http://security.debian.org/ lenny/updates main&lt;br /&gt;deb-src http://security.debian.org/ lenny/updates main&lt;br /&gt;&lt;br /&gt;# sid (unstable)&lt;br /&gt;deb http://ftp.br.debian.org/debian/ sid main&lt;br /&gt;deb-src http://ftp.br.debian.org/debian/ lenny main&lt;/blockquote&gt;&lt;br /&gt;Agora basta atualizar a lista de pacotes disponíveis e instalar os pacotes xserver-xorg e xkb-data&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;aptitude update&lt;br /&gt;aptitude -t unstable install xserver-xorg xserver-xorg-video-intel&lt;br /&gt;aptitude -t unstable xkb-data # para evitar problemas com o teclado&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configurando o Xorg&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;É necessário configurar o xorg para carregar o driver da intel, isso é feito na seção device do arquivo /etc/X11/xorg.conf. O meu ficou assim:&lt;/div&gt;&lt;blockquote&gt;Section "Device"&lt;br /&gt;Identifier "Configured Video Device"&lt;br /&gt;Driver "intel"&lt;br /&gt;EndSection&lt;/blockquote&gt;Então basta reiniciar o X e provavelmente a aceleração 3D estará funcionando.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Quando eu acabei os procedimentos explicados acima, eu rodei o "&lt;i&gt;glxinfo | grep rendering&lt;/i&gt;", vi um "&lt;i&gt;Yes&lt;/i&gt;" e fiquei feliz, pensando que tudo estava ok.&lt;br /&gt;&lt;br /&gt;Eu não tinha como desconfiar de algo, o compiz tinha funcionado e eu não tinha percebido nenhum problema. Porém, acabei rodando o &lt;i&gt;glxgears&lt;/i&gt; para ter uma noção da velocidade e vi que o desempenho era horrível. Míseros 50pfs...&lt;br /&gt;&lt;br /&gt;Pelo que pude entender das listas do Xorg, para a placa funcionar de maneira decente é necessário o uso do &lt;a href="http://en.wikipedia.org/wiki/Graphics_Execution_Manager"&gt;GEM (Graphics Execution Manager)&lt;/a&gt; da Intel, mas infelizmente todo o código, seja do Linux, seja do Xorg, ainda está muito novo e instável para ser usado por simples usuários.&lt;br /&gt;&lt;br /&gt;O jeito é esperar os pacotes deb, vou ficar de olho no &lt;a href="http://bgoglin.livejournal.com/tag/planet.d.o"&gt;blog do XStrikeForce&lt;/a&gt; e qualquer novidade eu comento aqui.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;$ glxgears &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;Running synchronized to the vertical refresh. &lt;b&gt;The framerate should be approximately the same as the monitor refresh rate&lt;/b&gt;.&lt;br /&gt;289 frames in 5.0 seconds = 57.619 FPS&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Ou seja, está funcionando desde o princípio...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-7120601224606789701?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=a9O_pU2HByY:qs03j2Hf0fU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/11/placa-aceleradora-grfica-intel-x4500-hd.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-7109460210896906382</guid><pubDate>Sat, 01 Nov 2008 02:31:00 +0000</pubDate><atom:updated>2009-10-16T06:03:57.328-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Opinião</category><title>Fone Philips SHN2500</title><description>Eu passo muitas horas em locais públicos, onde normalmente tem gente demais falando ou tem muito barulho de trânsito, também viajo muito de ônibus, onde tem muito barulho de carro e muita gente falando ao mesmo tempo.&lt;br /&gt;
&lt;br /&gt;
Por isso resolvi investir num fone de qualidade, que me isole do ambiente, e facilite minha concentração. Acabei escolhendo, sem pesquisar direito, o Fone Philips SHN2500 e resolvi compartilhar minha experiência com ele.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Qualidades&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
O fone vem com dois adaptadores para o conector, um para o &lt;a href="http://en.wikipedia.org/wiki/TRS_connector" id="ytyo" title="conector TRS"&gt;conector TRS&lt;/a&gt; estéreo e outro para o conector de dois pinos de avião.&lt;br /&gt;
&lt;br /&gt;
Mas a característica que chama mais atenção é a tecnologia de redução de ruídos, que &lt;i&gt;promete&lt;/i&gt; reduzir até 70% do ruído externo.&lt;br /&gt;
&lt;br /&gt;
Na verdade existem duas tecnologias de redução de ruído no fone, a passiva e a ativa:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Redutor de ruídos passivo - é isolamento feito para diminuir a quantidade de ruídos cheguem ao seu ouvido interno. A idéia é simples, os alto-falantes possuem uma borracha que se modela dentro do ouvido diminuindo muito a quantidade de sons percebidas;&lt;/li&gt;
&lt;li&gt;Redutor de ruídos ativo - é um dispositivo que emite uma onda que anula os ruídos do ambiente.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;Defeitos&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;O cabo é muito curto, tem apenas 1,2m;&lt;/li&gt;
&lt;li&gt;O dispositivo redutor de ruídos é grande, tendo o tamanho  de um &lt;a href="http://pt.wikipedia.org/wiki/S1_Mp3_Player" id="z0mr" title="mp3 player xing ling"&gt;mp3 player xing ling&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;O dispositivo redutor de ruídos foi muito mal posicionado, ele fica no meio do cabo do fone, fazendo com que ele fique pendurado mais ou menos da altura do umbigo, causando um grande incômodo;&lt;/li&gt;
&lt;li&gt;Além da onda sonora para cancelar os ruídos, o redutor ativo aumenta o volume do som, obviamente uma tentativa tola de fazer com que a redução está realmente causando algum efeito;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;O revestimento de borracha dos alto-falantes causam uma sensação de estar debaixo da água e me fazem escutar muito os barulhos internos de dentro do meu corpo, como barulho de mastigação, engolir água e respirar. Bem desconfortável.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Parece que a Philips esqueceu de pedir para algumas pessoas usarem um protótipo, pois qualquer pessoa que use o fone por alguns minutos provavelmente se sentirá incomodada com o redutor de ruídos balançando e puxando os fios para baixo.&lt;br /&gt;
&lt;br /&gt;
O mais incrível é que esse é um problema muito fácil de corrigir, pois se o redutor ficasse a penas uns 15 ou 20 centímetros abaixo, seria possível colocar &lt;i&gt;treco&lt;/i&gt; no bolso ou prender no cinto da calça, o que acabaria com o desconforto.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusão&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
De um modo geral eu fiquei sat&lt;span style="font-family: inherit;"&gt;isfeito com &lt;/span&gt;a qualidade do som e com o conforto quando eu estou sentado e dentro de um carro, ônibus ou metrô. O redutor de ruídos ativo parece funcionar bem em ambientes ruidosos, mas eu prefiro aumentar eu mesmo o volume quando achar que isso vai ajudar a me isolar do ambiente.&lt;br /&gt;
&lt;br /&gt;
Acho que vou procurar um &lt;a href="http://en.wikipedia.org/wiki/Headphone" id="zo6s" title="headphone"&gt;headphone&lt;/a&gt;, que deve ser bem mais confortável pra usar na hora de estudar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-7109460210896906382?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=YcbvWuoxbAI:31_nbkDRXCM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/review-fone-philips-shn2500.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-5375011418900367739</guid><pubDate>Tue, 28 Oct 2008 06:29:00 +0000</pubDate><atom:updated>2009-05-22T21:32:57.205-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Opinião</category><title>Motivos para evitar iPods</title><description>Vou explicar por que os tocadores da Apple devem ser evitados, apresentarei motivos práticos, explicando quais são os problemas encontrados pelos usuários de software livre ao &lt;i&gt;tentar&lt;/i&gt; usar um iPod touch ou iPhone. Caso você queira conhecer alguns motivos mais gerais e filosóficos, vale a pena conferir o texto publicado pela FSF, &lt;a href="http://www.fsf.org/blogs/community/5-reasons-to-avoid-iphone-3g" id="rkax" title="5 motivos para evitar o iphone 3g"&gt;5 motivos para evitar o iPhone 3G&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Eu não gosto da Apple por causa da história dela, que é tão sombria e assustadora quanto a da Microsoft. Mas vou me concentrar nos problemas dos iPods, um dos problema é que a Apple não quer que nenhum software, além do iTunes, possa gerenciar um iPod, e por causa disso ela cria obstáculos, como criptografar o banco de dados das músicas. Outro problema, que é ainda mais grave, é que se você tiver um iPod, você não pode instalar nenhum software livre nele. Sim, o iPod é seu, mas você não pode instalar nenhum programa sem a autorização da Apple. Um absurdo!&lt;br /&gt;
&lt;br /&gt;
Mesmo assim, algumas pessoas apelam para o &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FJailbreak&amp;amp;ei=zuQASa-YI4ie1wbhk7ipDg&amp;amp;usg=AFQjCNF-ZYauEuBU-aK9CSPOvcbxV8ENEw&amp;amp;sig2=UyCFibzBDhns7m7SfBgyXg" id="yrzz" title="jailbreak"&gt;jailbreak&lt;/a&gt;, que é considerado ilegal em vários países e ainda viola a garantia do iPod. Você violaria a garantia do seu iPhone de quase R$ 2000,00?&lt;br /&gt;
&lt;br /&gt;
Com o jailbreak é possível instalar programas não autorizados pela Apple. Alguns programas não oficiais são realmente bons, como o OpenSSH e  BSD SubSystem, que juntos deixam seu iPod acessível pela rede wireless. Foi com o ssh que surgiu o primeiro método de fazer upload de músicas para o iPod touch: usando o sshfs, dá para mountar o iPod num diretório e ter acesso aos arquivos e assim a libgpod podia sincronizar as músicas.&lt;br /&gt;
&lt;br /&gt;
Calma, sei que as informações acima poderiam deixar um usuário de linux, dono de iPod, meio abatido, mas nem tudo está perdido, existem bibliotecas que resolvem alguns dos problemas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;libgpod&lt;/b&gt; - &lt;a href="http://www.gtkpod.org/libgpod.html" id="en7_" title="http://www.gtkpod.org/libgpod.html"&gt;http://www.gtkpod.org/libgpod.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
A libgpod é uma biblioteca para acessar o conteúdo de um iPod. Ela dá suporte ao iPod classic, iPod mini, iPod photo e já tem um suporte preliminar ao iPhone e iPod touch.&lt;br /&gt;
O suporte ao iPhone e iPod touch é muito limitado, atualmente, com a versão estável da libgpod, só é possível controlar o dispotivos com firmware até a versão 1.3 e, mesmo assim, só é possível adicionar músicas, ainda não há como adicionar filmes ou fotos. No firmware 2.0 a Apple usa um novo algoritmo de criptografia que impede que a libgpod sincronize o banco de dados das músicas.&lt;br /&gt;
&lt;br /&gt;
Existem vários aplicativos conhecidos que usam a libgpod, os mais conhecidos são &lt;a href="http://www.gtkpod.org/" id="tqau" title="gtkpod"&gt;gtkpod&lt;/a&gt;, &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Famarok.kde.org%2F&amp;amp;ei=SrwASZKoEJSq1gbp-cm6Dg&amp;amp;usg=AFQjCNFk8tWf-dsfTT85tY4rvLEYlUlwpQ&amp;amp;sig2=G7jseAD_Dz-FNoC_0e6V5w" id="gtab" title="Amarok"&gt;Amarok&lt;/a&gt; e &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.gnome.org%2Fprojects%2Frhythmbox%2F&amp;amp;ei=Y7wASf7TIIGW1wbprfnCDg&amp;amp;usg=AFQjCNFurXfDSOYbdHIUI93JIS3fQF1z4Q&amp;amp;sig2=2MmBl7nwA13JS2AAWCuulA" id="c-im" title="Rhythmbox"&gt;Rhythmbox&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Até pouco tempo, para usar a libgpod era necessário quebrar a proteção do iPod, instalar o ssh e então usar o sshfs para ter acesso ao sistema de arquivos. Agora isso não é mais necessário graças ao iFuse.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;iFuse&lt;/b&gt; - &lt;a href="http://matt.colyer.name/projects/iphone-linux/index.php?title=Main_Page" id="fz8j" title="http://matt.colyer.name/projects/iphone-linux/index.php?title=Main_Page"&gt;http://matt.colyer.name/projects/iphone-linux/index.php?title=Main_Page&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
O iFuse permite que você monte um iPhone ou iPod touch em Linux, usando o cabo USB. O interessante é que assim o iPod funciona como se fosse USB Storage, você pode ver e editar arquivos como se fosse um disco USB comum. Outra coisa interessante é que o iFuse não necessita de "jailbreaking" e funciona sem a necessidade de programas extras instalados no dispositivo, tais como o ssh.&lt;br /&gt;
&lt;br /&gt;
O problema do iFuse é que ele ainda é muito novo e foi pouco testável, então eu desconfio que exista uma chance&lt;br /&gt;
&lt;br /&gt;
Eu ia falar mal, mas acabei dando dicas de como fazer o iPod funcionar numa distribuição GNU/Linux - já aviso que vai dar um trabalhão!&lt;br /&gt;
&lt;br /&gt;
Eu vou continuar &lt;a href="http://maxjahnke.blogspot.com/2008/10/procura-de-um-mp3-player-portdecente.html" id="uz2g" title="procurando um mp3 player decente"&gt;procurando um mp3 player decente&lt;/a&gt;, em breve eu volto com mais novidades.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-5375011418900367739?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=fzZAzEy8Fis:7BfpRqSukIE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/motivos-para-evitar-ipods.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-4946112291938513959</guid><pubDate>Fri, 24 Oct 2008 20:03:00 +0000</pubDate><atom:updated>2009-05-23T20:28:17.803-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Relatos</category><category domain="http://www.blogger.com/atom/ns#">USP</category><category domain="http://www.blogger.com/atom/ns#">IME</category><title>Programa do IV Simpósio de Iniciação Científica e Pós-Graduação do IME-USP</title><description>&lt;a href="http://maxjahnke.blogspot.com/2008/10/iv-simpsio-de-iniciao-cientfica-e-ps.html"&gt;Como eu tinha falado&lt;/a&gt;, vou participar do &lt;a href="http://www.ime.usp.br/%7Ecpq/home/IVSimposio/"&gt;IV Simpósio do IME de Iniciação Científica e Pós-Graduação do IME-USP&lt;/a&gt; e acabei de receber um e-mail da Comissão de Pesquisa do IME, eles acabaram de divulgar o &lt;a href="http://www.linux.ime.usp.br/%7Ejahnke/ivsimposioime/programa_iv_simposio_2008_oficial.pdf"&gt;programa das exposições orais do simpósio&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Eu fiquei muito surpreso ao descobrir que fui escolhido para uma apresentação oral, pois a maioria dos alunos acaba tendo que fazer apenas um pôster para apresentar seu trabalho e a exposição oral é um sinal de prestígio.&lt;br /&gt;&lt;br /&gt;Minha apresentação será terça feira, dia 4 de novembro das 17:40 as 18:00, na sala de conferências Prof. Antonio Giglioli, sala 247/262 do bloco A do IME.&lt;br /&gt;&lt;br /&gt;Aqui está o resumo da minha exposição:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;"O teorema de Arzelà–Ascoli é um importante resultado, com aplicações na análise real, análise funcional e áreas relacionadas como a teoria das equações diferenciais. Ele determina as condições necessárias e suficientes para que um conjunto de funções de espaço compacto, com valores em um espaço métrico, seja compacto na topologia da convergência uniforme.&lt;br /&gt;Apresentaremos algumas propriedades de compactos em R, Rn e de como a compacidade se relaciona à outras propriedades dos números reais como a completude. Discutiremos algumas diferenças importantes entre conjuntos compactos de Rn e de C([0,1]).&lt;br /&gt;Mostraremos dois exemplos de aplicação do teorema de Arzelà–Ascoli, apresentando um esqueleto da demonstração do teorema de existência de Peano e do teorema de Montel, destacando um ponto delicado onde o teorema de Àrzela-Ascoli é usado."&lt;/blockquote&gt;&lt;br /&gt;Esse será meu primeiro seminário oficial e aberto ao público, espero não passar vergonha!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-4946112291938513959?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=PUP1ZNy76yo:gbMUxDMQgjE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/programa-do-iv-simpsio-de-iniciao.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-8416126130015223049</guid><pubDate>Mon, 20 Oct 2008 02:06:00 +0000</pubDate><atom:updated>2009-10-16T06:03:25.335-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Opinião</category><title>À procura de um reprodutor de músicas decente</title><description>&lt;a href="http://3.bp.blogspot.com/_Ay26Dmqa_8U/SPv5AjijEPI/AAAAAAAAAYI/0HpEevANgTU/s1600-h/mp3_1g_foston.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5259070777820647666" src="http://3.bp.blogspot.com/_Ay26Dmqa_8U/SPv5AjijEPI/AAAAAAAAAYI/0HpEevANgTU/s320/mp3_1g_foston.jpg" style="cursor: pointer; float: right; margin: 0pt 0pt 0px 0px;" /&gt;&lt;/a&gt;Há três anos eu tenho um &lt;a href="http://pt.wikipedia.org/wiki/Mp3_player"&gt;reprodutor de música portátil&lt;/a&gt; da &lt;a href="http://www.foston.com.br/loja/"&gt;Foston&lt;/a&gt;, que deixava muito a desejar desde o início, mas para piorar, agora está com alguns defeitos e certamente está com os dias contados.&lt;br /&gt;
&lt;br /&gt;
São várias as limitações técnicas:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Não tem visor colorido;&lt;/li&gt;
&lt;li&gt;A interface do software é muito ruim e contra-intuitiva;&lt;/li&gt;
&lt;li&gt;Não tem suporte a &lt;span style="font-style: italic;"&gt;playlists&lt;/span&gt;;&lt;/li&gt;
&lt;li&gt;Não tem recurso pra facilitar a busca por músicas.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Apesar da tosquice, me adaptei ao visor deplorável e entendi como navegar nos diretórios, e mesmo sem suporte a playlists, eu organizava as músicas em diretórios, já que o reprodutor tinha alguns recursos que trabalhavam com todas as músicas de uma mesma pasta. Mesmo assim, isso ainda era muito limitado, pois se eu quisesse duas listas de músicas que tivessem listas em comum, eu seria obrigado a duplicar arquivos.&lt;br /&gt;
&lt;br /&gt;
Mas o &lt;span style="font-style: italic;"&gt;mp3&lt;/span&gt;&lt;span style="font-style: italic;"&gt; player&lt;/span&gt; já &lt;span style="font-style: italic;"&gt;playô&lt;/span&gt; o que tinha que &lt;span style="font-style: italic;"&gt;playá&lt;/span&gt;, e está quase morrendo: o vidro protetor quebrou devido ao empurra-empurra dos ônibus de São Paulo, o &lt;span style="font-style: italic;"&gt;hold&lt;/span&gt;, botão responsável por travar todos os outros botões, já não funciona mais e os botões do volume estão falhando muito.&lt;br /&gt;
&lt;br /&gt;
Então, resolvi começar a procurar um &lt;span style="font-style: italic;"&gt;mp3&lt;/span&gt;&lt;span style="font-style: italic;"&gt; player&lt;/span&gt; novo. Minhas exigências são simples:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;2 GB de capacidade de armazenamento;&lt;/li&gt;
&lt;li&gt;Suporte a listas de músicas, com bons recursos para organizar músicas;&lt;/li&gt;
&lt;li&gt;Interface amigável e inteligente;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Mais de 25 horas de duração de bateria;&lt;/li&gt;
&lt;li&gt;Boa compatibilidade com &lt;a href="http://pt.wikipedia.org/wiki/Software_livre"&gt;software livre&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Quero gastar no máximo R$ 500,00.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Para mim "boa compatibilidade com software livre" significa que eu posso usar a maioria dos recursos do reprodutor com software livre, o que obviamente deixa de lado as últimas versões dos mais-do-que-desejados iPods, já que atualmente não há software livre que adicione fotos ou vídeos nos iPod nano, iPod touch e iPhone.&lt;br /&gt;
&lt;br /&gt;
Já estou pesquisando e em breve devo começar a publicar minhas análises que espero que sejam úteis para muitas outras pessoas, sejam elas compradoras compulsivas, para talvez tomarem cuidado ou entusiastas do software livre que não querem acabar criando novas amarras com sistemas operacionais fechados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-8416126130015223049?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=83NBhY5GuTM:5wmDrfmpDL0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/procura-de-um-mp3-player-portdecente.html</link><author>noreply@blogger.com (Jahnke)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Ay26Dmqa_8U/SPv5AjijEPI/AAAAAAAAAYI/0HpEevANgTU/s72-c/mp3_1g_foston.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-4628052690657605250</guid><pubDate>Tue, 14 Oct 2008 05:17:00 +0000</pubDate><atom:updated>2009-05-22T21:32:36.967-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Cultura Nerd</category><title>Preparem suas Toalhas!</title><description>Preparem suas &lt;a href="http://jahnke.wordpress.com/2008/05/13/dia-da-toalha-uma-homenagem-a-douglas-adams/"&gt;toalhas&lt;/a&gt;, pois &lt;a href="http://blossomgoodchild.blogspot.com/" target="_blank"&gt;Blossom Goodchild&lt;/a&gt;, depois de um intenso ritual de &lt;a href="http://desciclo.pedia.ws/wiki/Cheiramento_de_gatinhos"&gt;cheiramento de gatinhos&lt;/a&gt; &lt;a href="http://blossomgoodchild.blogspot.com/2008/10/enough-is-enough.html"&gt;anuncia ao mundo&lt;/a&gt; que hoje, dia 14 de outubro de 2008 alienígenas da federação da luz virão ao planeta terra com uma nave espacial e ficarão visíveis a nós humanos por três inteiros dias como prova de sua existência (existência de alienígenas, não de leitores do blog, que já sabemos [plural?!] que não existem).&lt;br /&gt;
&lt;br /&gt;
Um video sobre a mensagem pode ser conferido no youtube:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/khZQHyVD88s&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/khZQHyVD88s&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
E as primeiras &lt;span style="text-decoration: line-through;"&gt;falsas&lt;/span&gt; imagens já podem ser vistas em:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/b_xDpqSTNEQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/b_xDpqSTNEQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Caso você tenha interesse sobre pesquisa científica sobre a existência de vida fora do planeta terra, recomendo a leitura dos seguintes artigos da wikipedia inglêsa:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/SETI"&gt;http://en.wikipedia.org/wiki/SETI&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Fermi_paradox"&gt;http://en.wikipedia.org/wiki/Fermi_paradox&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Extraterrestrial_life"&gt;http://en.wikipedia.org/wiki/Extraterrestrial_life&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Drake_equation"&gt;http://en.wikipedia.org/wiki/Drake_equation&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Carl_Sagan"&gt;http://en.wikipedia.org/wiki/Carl_Sagan&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-4628052690657605250?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=FqnoGWFAgpk:j-6HS-c8fHA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/preparem-suas-toalhas.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-9088486281993502390</guid><pubDate>Tue, 14 Oct 2008 04:16:00 +0000</pubDate><atom:updated>2009-05-23T20:32:37.817-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Curiosidades</category><title>If the world could vote?</title><description>E se o mundo pudesse votar nas eleições dos Estados Unidos?&lt;br /&gt;&lt;br /&gt;Não é realmente uma pergunta tola, a atual crise econômica, que afeta todos os países do planeta terra, mostra que até o que acontece na política dos continentes podem afetar a vida dos brasileiros.&lt;br /&gt;&lt;br /&gt;Claro que ninguém deve acreditar que o mundo inteiro deveria decidir quem será o próximo presidente dos Estados Unidos, mas é, no mínimo interessante, saber qual é a opinião do mundo quando o assunto é a corrida eleitoral do mais poderoso país do globo.&lt;br /&gt;&lt;br /&gt;Foi com a pergunta do título na cabeça que três caras da Islândia criaram o &lt;a href="http://www.iftheworldcouldvote.com/"&gt;www.iftheworldcouldvote.com&lt;/a&gt;, um site onde qualquer um, sim, qualquer terráqueo - alienígenas que cuidem de suas próprias espécies - pode votar.&lt;br /&gt;&lt;br /&gt;Atualmente o candidato Barack Obama está ganhando com                87.2% dos votos, quando se considera os votos dos participantes de todo o mundo. No Brasil a situação não é muito diferente, ele tem 85.1% dos votos e nos Estados Unidos, 82%. O único lugar onde McCain está ganhando é no conhecidíssimo Burkina Faso, com 100% dos votos, incríveis 2 votos!&lt;br /&gt;&lt;br /&gt;Vamos ver como serão os dados depois que as eleições terminem: se os dados forem muito discrepantes, certamente teremos novamente centenas e centenas de novas teorias de conspiração, como houve na época da candidatura do mundialmente admirado e respeitado J.W. Bush.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-9088486281993502390?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=p5tuqf5NOng:jcGmu_HgLmg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/if-world-could-vote.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-8562534942323656711</guid><pubDate>Tue, 14 Oct 2008 02:27:00 +0000</pubDate><atom:updated>2009-05-22T21:38:31.053-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Meme</category><title>Meme: Núvem de Tags do Blog</title><description>Espalhando mais um meme: use o feed rss do seu blog no &lt;a href="http://www.wordle.net/" target="_blank"&gt;wordle&lt;/a&gt; para gerar uma núvem de tags das palavras mais comuns dos seus posts e publique. Simples, não?&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jahnke.files.wordpress.com/2008/10/jahnkes_blog_wordle.jpg"&gt;&lt;img alt="" class="aligncenter size-large wp-image-66" height="264" src="http://jahnke.files.wordpress.com/2008/10/jahnkes_blog_wordle.jpg?w=495" title="jahnkes_blog_wordle" width="413" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-8562534942323656711?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=WmR9DsZh3Gg:Ax7r4A2to80:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/meme-nvem-de-tags-do-blog.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-8148189719292531505</guid><pubDate>Fri, 10 Oct 2008 20:39:00 +0000</pubDate><atom:updated>2009-05-22T21:37:23.076-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Matemática</category><category domain="http://www.blogger.com/atom/ns#">USP</category><category domain="http://www.blogger.com/atom/ns#">IME</category><title>IV Simpósio de Iniciação Científica e Pós-Graduação do IME-USP</title><description>Este ano será minha primeira participação em um simpósio, o &lt;a href="http://www.ime.usp.br/%7Ecpq/home/IVSimposio/" target="_blank"&gt;IV Simpósio de Iniciação Científica e Pós-Graduação do IME-USP&lt;/a&gt;, que ocorre anualmente.&lt;br /&gt;
&lt;br /&gt;
Para quem não conhece, os simpósios acadêmicos são eventos periódicos onde pesquisadores e alunos apresentam seus trabalhos, sejam em forma posteres ou apresentações orais, em seminários e iniciação científica é um projeto de pesquisa realizado por alunos de graduação, sub supervisão um ou mais professoers qualificados, os chamados orientadores.&lt;br /&gt;
&lt;br /&gt;
Em meu projeto eu estou pesquisando sobre aplicações da &lt;a href="http://en.wikipedia.org/wiki/Topology"&gt;Topologia&lt;/a&gt; à &lt;a href="http://en.wikipedia.org/wiki/Mathematical_analysis"&gt;Análise&lt;/a&gt; e a outras áreas da matemática e neste simpósio apresentei um resumo sobre o &lt;a href="http://en.wikipedia.org/wiki/Arzel%C3%A0%E2%80%93Ascoli_theorem" target="_blank"&gt;teorema de Arzelà-Ascoli&lt;/a&gt; e algumas aplicações à Análise.&lt;br /&gt;
&lt;br /&gt;
O resumo introduz alguns conceitos e resultados básicos para que seja possível enunciar e demonstrar o teorema de Arzelà-Ascoli, e então duas demonstrações do &lt;a href="http://en.wikipedia.org/wiki/Peano_existence_theorem" target="_blank"&gt;teorema de Peano&lt;/a&gt; e uma demonstração do &lt;a href="http://en.wikipedia.org/wiki/Montel%27s_theorem"&gt;teorema de Montel&lt;/a&gt; são apresentadas.&lt;br /&gt;
&lt;br /&gt;
Caso alguém tenha interesse em meu resumo, ele pode ser encontrato em: &lt;a href="http://www.linux.ime.usp.br/%7Ejahnke/ivsimposioime/ascoli-arzela-theorem.pdf"&gt;http://www.linux.ime.usp.br/~jahnke/ivsimposioime/ascoli-arzela-theorem.pdf&lt;/a&gt;.  Tentei escrever o texto de forma com que qualquer pessoa com conhecimentos básicos de &lt;a href="http://en.wikipedia.org/wiki/Real_Analysis"&gt;Análise Real&lt;/a&gt; e Topologia possa entender, mas não sei se fui capaz de tal feito, então talvez seja muito mais simples consultar os artigos da Wikipedia linkados acima.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-8148189719292531505?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=AVI5ll4Wf0I:Ek09NTIQeM4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/10/iv-simpsio-de-iniciao-cientfica-e-ps.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-1647357523822739118</guid><pubDate>Tue, 24 Jun 2008 23:56:00 +0000</pubDate><atom:updated>2009-05-23T20:27:31.220-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Outros</category><title>Ajude a sustentar a Wikipédia e outros projetos!</title><description>&lt;div style="margin-left: 4em;"&gt;&lt;b&gt;Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;…e também a pen drives, card drives, camisetas geeks, livros e mais! O &lt;a href="http://br-linux.org/"&gt;BR-Linux&lt;/a&gt; e o &lt;a href="http://efetividade.net/"&gt;Efetividade&lt;/a&gt; lançaram uma &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;campanha&lt;/a&gt; para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;participe&lt;/a&gt; - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-1647357523822739118?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=pkWWqwoabNU:Wma7tcRcmgc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/06/ajude-sustentar-wikipdia-e-outros.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-3999760781112948254</guid><pubDate>Thu, 19 Jun 2008 01:41:00 +0000</pubDate><atom:updated>2009-05-22T21:35:08.931-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Filmes</category><title>The Godfather</title><description>&lt;div align="center"&gt;"I'm going to make him an offer he can't refuse."&lt;br /&gt;
-- Don Vito Corleone.&lt;br /&gt;
&lt;br /&gt;
O filme "&lt;a href="http://en.wikipedia.org/wiki/The_Godfather_Part_I"&gt;The Godfather&lt;/a&gt;", conhecido como "O Poderoso Chefão" no Brasil é um dos melhores filmes já feitos em todo o planeta terra! Pra quem viveu no &lt;a href="http://desciclo.pedia.ws/wiki/Acre"&gt;Acre&lt;/a&gt; nos últimos 40 anos e não conhece o filme, ele conta a história da família de &lt;a href="http://en.wikipedia.org/wiki/Don_Vito_Corleone"&gt;Don Vito Corleone&lt;/a&gt;, um pobre imigrante italiano, que chega sozinho aos Estados Unidos e constrói um &lt;a href="http://en.wikipedia.org/wiki/Cosa_Nostra"&gt;poderoso império&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toda a história é contada em três filmes, a primeira parte, intitulada "The Godfather" foi lançada em 1972, teve o papel principal, de Don Vito Corleone interpretada pelo lendário &lt;a href="http://en.wikipedia.org/wiki/Marlon_Brando"&gt;Marlon Brando&lt;/a&gt; e o papel de Michael Corleone, filho de Don Corleone interpretada pelo ainda jovem e desconhecido &lt;a href="http://en.wikipedia.org/wiki/Al_Pacino"&gt;Al Pacino&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Este filme foi ganhador de três &lt;a href="http://en.wikipedia.org/wiki/Academy_Award"&gt;Oscars&lt;/a&gt;, o de melhor papel a Marlon Brando, melhor fotografia a &lt;a href="http://en.wikipedia.org/wiki/Albert_S._Ruddy"&gt;Albert S. Ruddy&lt;/a&gt; e melhor roteiro a &lt;a href="http://en.wikipedia.org/wiki/Mario_Puzo"&gt;Mario Puzo&lt;/a&gt; e &lt;a href="http://en.wikipedia.org/wiki/Francis_Ford_Coppola"&gt;Francis Ford Coppola&lt;/a&gt;. Além de ter ganhado vários outros premios e nomeações.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A segunda parte da história, nomeada "&lt;a href="http://en.wikipedia.org/wiki/The_Godfather_Part_II"&gt;The Godfather: Part II&lt;/a&gt;" foi lançada em 1974 e teve como ator principal Al Pacino, que interpreta de forma magnífica o agora Don Michael Corleone, que assume o controle da família Corleone, o filme também tem flashbacks mostrando como foi a infância de Don Vito Corleone e como foram os primeiros negócios que deram poder e dinheiro a família.&lt;br /&gt;
&lt;br /&gt;
Este filme foi ganhador de 6 Oscars, entre eles o de melhor ator, que foi dado a &lt;a href="http://en.wikipedia.org/wiki/Robert_De_Niro"&gt;Robert De Niro&lt;/a&gt;, por sua excelente atuação de Don Vito Corleone, em sua juventude, e o de melhor roteiro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A terceira parte da história "&lt;a href="http://en.wikipedia.org/wiki/The_Godfather_Part_III"&gt;The Godfather: Part III&lt;/a&gt;", lançada em 1990, mostra Don Michael Corleone, ainda interpretado por Al Pacino, tentando legalizar os negócios da família.&lt;br /&gt;
&lt;br /&gt;
Todo os três filmes são muito bonitos e interessantes, mostrando alguns aspectos da cultura italiana, e também belas imagens da &lt;a href="http://en.wikipedia.org/wiki/Sicilia"&gt;Sicília&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A trilogia é internacionalmente respeitada, tanto pela crítica quando pelo público em geral e influenciou praticamente todos os filmes de gangsters lançados posteriormente.&lt;br /&gt;
&lt;br /&gt;
Para quem ficou com curiosidade, vale a pena conferir a cena de abertura do primeiro filme no youtube.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-3999760781112948254?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=8WmmUOkdyFY:196XUmELXjc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/06/godfather.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-597100579646474155.post-6529573249650882123</guid><pubDate>Sun, 15 Jun 2008 22:38:00 +0000</pubDate><atom:updated>2009-05-23T20:27:09.552-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Livre</category><title>Firefox Download Day!</title><description>&lt;div class="inner-wrapper"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/node&amp;amp;id=0&amp;amp;t=264"&gt;&lt;img alt="Download Day" class="alignright" src="http://www.spreadfirefox.com/files/images/affiliates_banners/dday_badge_fox.png" style="float: right;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Mozilla_Foundation"&gt;A Fundação Mozilla&lt;/a&gt; está promovendo o Firefox Download Day, que está tentando fazer com que o &lt;a href="http://en.wikipedia.org/wiki/Mozilla_Firefox"&gt;Firefox&lt;/a&gt; entre no Livro dos Recordes Guinness como o software que foi mais baixado em 24 horas.&lt;br /&gt;&lt;br /&gt;Ajudar o Firefox a ganhar esse registro no Livro dos Recordes além de promover o uso de &lt;a href="http://en.wikipedia.org/wiki/Free_software"&gt;software livre&lt;/a&gt; você ainda estará contribuindo para que a Web fique mais bonita!&lt;br /&gt;&lt;br /&gt;A  data oficial do lançamento do Firefox 3 é 17 de Junho de 2008. Então acessem &lt;a href="http://www.spreadfirefox.com/pt-BR/worldrecord" target="_blank"&gt;http://www.spreadfirefox.com/pt-BR/worldrecord&lt;/a&gt; e se cadastre no Firefox Download Day.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/597100579646474155-6529573249650882123?l=maxjahnke.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/jahnkesweblog?a=J2Btxj8Vb0M:qnaRtP8pDR8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/jahnkesweblog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://maxjahnke.blogspot.com/2008/06/firefox-download-day.html</link><author>noreply@blogger.com (Jahnke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>
