<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog do chester &#187; software</title>
	<atom:link href="http://chester.blog.br/archives/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://chester.blog.br</link>
	<description>livros, quadrinhos, micros antigos, web, política, software e tudo mais que me der na telha</description>
	<lastBuildDate>Tue, 09 Mar 2010 13:47:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bitchmaps</title>
		<link>http://chester.blog.br/archives/2010/02/bitchmaps-2.html</link>
		<comments>http://chester.blog.br/archives/2010/02/bitchmaps-2.html#comments</comments>
		<pubDate>Fri, 05 Feb 2010 04:31:17 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/?p=3619</guid>
		<description><![CDATA[Uma nova reportagem do Terra reacendeu o interesse geral no BitchMaps &#8211; um mashup que cruzava posts de um fórum sobre casas de tolerância com sistemas de geotagging e exibia o resultado no Google Maps, chamando a atenção da mídia (vide abaixo) pela aplicação original (e, diriam alguns, surreal) da tecnologia.
Para quem se interessa pela [...]]]></description>
			<content:encoded><![CDATA[<p>Uma <a href="http://terramagazine.terra.com.br/interna/0,,OI4245694-EI6594,00-Site+reune+bordeis+pelo+Brasil+usando+interface+Google+Maps.html">nova reportagem</a> do Terra reacendeu o <a href="http://search.twitter.com/search?q=bitchmaps">interesse</a> geral no <a href="http://bitchmaps.com">BitchMaps</a> &#8211; um mashup que cruzava posts de um fórum sobre <em>casas de tolerância</em> com sistemas de geotagging e exibia o resultado no Google Maps, chamando a atenção da mídia (vide abaixo) pela aplicação original (e, diriam alguns, surreal) da tecnologia.</p>
<p>Para quem se interessa pela parte operacional da coisa, escrevi na época uma <a href="http://chester.blog.br/archives/2008/05/receita_bitchmaps_1.html">série de posts detalhando as técnicas utilizadas no mashup</a> &#8211; vale lembrar que isso foi feito em 2008, e hoje devem existir outras bibliotecas e plugins mais avançados para fazer a mesma coisa no Ruby on Rails.<br />
<span id="more-3619"></span><br />
A escolha do fórum foi um misto de brincadeira e de experiência social. Não tenho nada contra a atividade proposta (para mim, recai na linha &#8220;se é consensual e não afeta ninguém de fora, que mal tem?&#8221;), mas não é exatamente a minha praia &#8211; razão pela qual <a href="http://chester.blog.br/archives/2008/08/adeus_bitchmaps.html">passei o site adiante</a>, não tendo hoje qualquer ligação com ele.</p>
<p>Os atuais proprietários (em seu pleno direito) optaram por simplificar o visual, removendo informações sobre o desenvolvimento e a repercussão na mídia. No entanto, eu achei essa mesma informação <a href="http://habbuba.blogspot.com/2008/05/bitchmaps.html">aqui</a> e resolvi (re-)reproduzir só para preservar:</p>
<hr />
<blockquote><p>O bitchmaps é um experimento de <a href="http://en.wikipedia.org/wiki/Geotagging">geotagging</a>/ <a href="http://en.wikipedia.org/wiki/Mashup">mashup</a> , motivado pela enorme quantidade de endereços físicos de acompanhantes/estabelecimentos nos fóruns do site <a href="http://www.gpguia.net/">GPGuia</a> , que poderiam ser facilmente visualizados num mapa se fossem processados e disponibilizados no <a href="http://code.google.com/apis/kml/documentation/">formato KML</a>.</p>
<p>Os botões <img src="http://bitchmaps.com/img/bt-map.gif" alt="ver no mapa" /> abrem os resultados no <a href="http://maps.google.com/">Google Maps</a>, e os <img src="http://bitchmaps.com/img/bt-download.gif" alt="download" /> abrem no <a href="http://earth.google.com/">Google Earth</a> (ou outro programa compatível com KML que você tenha). Usuários do iPhone ainda podem digitar a URL da cidade (incluindo o &#8220;http://&#8221;) na caixa de busca do <a href="http://www.apple.com/iphone/features/index.html#map">iPhone Maps</a>.</p>
<p><strong>Informações Técnicas</strong></p>
<p>O sistema de captura foi desenvolvido usando <a href="http://www.rubyonrails.org/">Ruby On Rails</a>, devido às facilidades oferecidas pela linguagem e pelo framework, tais como o <a href="http://code.whytheluckystiff.net/hpricot/">Hpricot</a> (usado para localizar os links no site) e o <a href="http://geokit.rubyforge.org/">GeoKit</a> (que faz a consulta nos sistemas de geotagging).</p>
<p>Os arquivos .kml de cada cidade são gerados com base nos resultados obtidos por estas ferramentas, e a versão compactada (.kmz) é servida no site (com um <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html">rewrite</a> simples para encurtar as URLs).</p>
<p>Os endereços são identificados por uma expressão regular, considerando a cidade/estado referenciados pelo fórum. A eficácia depende da qualidade da formatação destes endereços no título do post. Algumas cidades não foram representadas por terem endereços pouco convencionais (ex.: Brasília), outras porque os posts raramente ou nunca apresentam endereços no título. A atualização tem periodicidade indefinida.</p>
<p><strong>Avisos Importantes</strong></p>
<p>Este site ou seus desenvolvedores não têm qualquer conexão com o GPGuia. ou com qualquer um dos softwares, aparelhos ou sites mencionados, tampouco com as empresas ou pessoas que os desenvolvem ou representam. O uso das informações é livre, respeitando restrições que as fontes eventualmente venham a impor. Não assumimos qualquer responsabilidade pela veracidade ou precisão das informações, tampouco corroboramos qualquer finalidade de uso das mesmas.</p>
<p>Salientamos que nosso objetivo não é desviar tráfego do GPGuia. Ao contrário: o mapa permite que os posts sejam alcançados de forma mais interativa (todos os pontos no mapa dão link para os posts que os originaram). O que queremos aqui é mostrar o potencial do geotagging para fazer a ponte entre os amplos recursos de mapeamnto existentes na rede e as mais diversas fontes de informação.</p>
<p><strong>Créditos e Agradecimentos</strong><br />
A idéia inicial e a programação foram do <a href="http://chester.blog.br/">Chester</a> &#8211; com uma grande ajuda do <a href="http://sabotagem.com.br/">Andre Cardozo</a>, que deu o caminho das pedras das bibliotecas. O <a href="http://felippo.net/">Felippo</a> criou o logo/visual e a <a href="http://danivalentin.net/">Dani Valentin</a> fez a página. O <a href="http://twitter.com/roudi">Roudi</a> bolou o nome (e uma tonelada de idéias para o futuro), e mais um monte de gente ajudou com sugestões, testes e conselhos.</p>
<p><strong>Repercussão</strong><br />
<label>Mídia:</label> <a href="http://www1.folha.uol.com.br/fsp/informat/fr2304200802.htm">Folha de São Paulo</a> ·  <a href="http://www1.folha.uol.com.br/folha/informatica/ult124u395886.shtml">Folha Online</a> ·  <a href="http://oglobo.globo.com/rio/ancelmo/post.asp?t=mapa_da_saliencia_carioca&amp;cod_Post=100453&amp;a=98">O Globo Online</a> ·  <a href="http://tecnologia.terra.com.br/interna/0,,OI2818497-EI4802,00-Site+mapeia+prostituicao+em+cidades+brasileiras.html">Terra</a> ·  <a href="http://uoltecnologia.blog.uol.com.br/arch2008-04-27_2008-05-03.html#2008_04-28_14_00_39-126529944-26">UOL Tecnologia (GigaBlog)</a></p>
<p><label>Blogs:</label> <a href="http://www.antenaparanoica.blogger.com.br/2008_04_01_archive.html#40242524">Antena Paranóica</a> ·   <a href="http://bazar21.wordpress.com/2008/04/27/encontre-bordeis-no-mapa/">Bazar 21</a> ·  <a href="http://blog.zoom.fot.br/?p=836">blog.zoom.fot.br</a> ·  <a href="http://bobagento.com/bitchmaps/">Bobagento</a> ·  <a href="http://botecosujo.blogspot.com/2008/04/uma-rodada-grtis-para-o-freqentador.html">Boteco Sujo</a> ·  <a href="http://descascaralho.blogspot.com/2008/04/bitchmaps.html">Descascar Alho</a> · <a href="http://querotecontar.blogspot.com/2008/04/mapeamento-necessrio.html">Quero te Contar</a> ·  <a href="http://www.morroida.com.br/2008/04/23/melhor-site-do-mundo/">Site da Morróida</a> ·  <a href="http://stepaola.com/blog/?p=402">Steffania Paola Blog</a> ·  <a href="http://updateordie.com/updates/tecnologia/2008/04/bitchmaps/">Update or Die</a> ·  <a href="http://videosespetaculares.com/site-mapeia-pontos-de-prostituicao-com-ajuda-do-google-maps">Vídeos Espetaculares</a> ·  <a href="http://zeguardinha.blogspot.com/2008/04/escapadinha-assunto-de-homem.html">Zé Guardinha</a></p>
<p><label>Outros:</label> <a href="http://summize.com/search?q=bitchmaps">Twitter</a> · <a href="http://www.orkut.com/UniversalSearch.aspx?origin=is&amp;q=bitchmaps">Orkut</a> · <a href="http://del.icio.us/url/f3403d6e4f6ba3fedbe315e55e4ae2ea">del.icio.us</a> (<a href="http://del.icio.us/url/25fc712cf77ccf232a2a36c26a93ed3c">en</a>) ·  <a href="http://blogblogs.com.br/search/search?query=bitchmaps">BlogBlogs</a> ·  <a href="http://ueba.com.br/Comm/77056/Mashup-que-exibe-as-casas-de-burlesco-do-GPGuia-dentro-do-Google">Ueba</a> ·  <a href="http://www.gafanhoto.com.br/blogs/V1DCBBP0">Gafanhoto</a> · <a href="http://forum.hardmob.com.br/showthread.php?p=6129564">hardMOB</a> ·  <a href="http://www.gpguia.net/phpbb/phpbb2/search.php?search_id=2104441421">GPGuia</a></p>
</blockquote>
<hr />
<!-- boo-widget start --><br />
					<script type="text/javascript">
					bb_keywords = "adulto,sexo,prostituta";
					bb_bid  = "128634";
					bb_lang  = "pt-BR";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script><br />
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script><br />
					<!-- boo-widget end --></p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2010/02/bitchmaps-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MemeThis</title>
		<link>http://chester.blog.br/archives/2009/10/memethis.html</link>
		<comments>http://chester.blog.br/archives/2009/10/memethis.html#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:18:41 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/?p=3481</guid>
		<description><![CDATA[O último ano viu o surgimento de uma quantidade enorme de sites inspirados no Twitter. Alguns tentam traduzir e/ou adaptar para culturas locais, outros tentam expandir o conceito (incluindo fotos, voz, etc.) &#8211; isso sem falar em sites já estabelecidos que abraçaram a idéia. Uns foram comprados por gente grande &#8211; e vários fecharam, mesmo [...]]]></description>
			<content:encoded><![CDATA[<p>O último ano viu o surgimento de uma quantidade enorme de <a href="http://www.honeytechblog.com/top-250-list-of-twitter-clones-sites/">sites inspirados no Twitter</a>. Alguns tentam traduzir e/ou adaptar para culturas locais, outros tentam expandir o conceito (incluindo <a href="http://twitpic.com/">fotos</a>, <a href="http://www.gengibre.com.br">voz</a>, etc.) &#8211; isso sem falar em sites já estabelecidos que <a href="http://facebook.com">abraçaram</a> a idéia. Uns foram <a href="http://www.jaiku.com/">comprados por gente grande</a> &#8211; e vários <a href="http://pownce.com/">fecharam</a>, mesmo com alguém bancando.</p>
<p>Era de se esperar que o Yahoo! entrasse nessa arena de alguma forma, mas o <a href="http://meme.yahoo.com/">Yahoo! Meme</a> superou as minhas expectativas, trabalhando muito bem três aspectos desse tipo de site: o <strong>encaminhamento</strong> de posts alheios (o &#8220;retweet&#8221; ou RT do Twitter); a <strong>multimídia</strong> (turbinada por uma interface que facilita o compartilhamento de fotos, vídeos e músicas sem as ginásticas que o passarinho exige) e a <strong>extensibilidade</strong>, que permite que terceiros conectem seus sites e aplicativos na plataforma.</p>
<p>A idéia é ótima (ainda mais como alternativa ao famigerado email com PowerPoint anexado e copiado para meio mundo), mas eu e a  <a href="http://baniverso.com/">Bani</a> nos incomodávamos com um lance: a burocracia. Você tinha que copiar o endereço do conteúdo, abrir o Meme, se autenticar, selecionar a mídia, colar o conteúdo e escrever algo sobre ele (do zero). Na nossa cabeça, a coisa só ia rolar se tivesse um botão no navegador que &#8220;olhasse&#8221; para o conteúdo e cuidasse desse processo todo.</p>
<p>Esse incômodo se juntou com a coceira de brincar com o <a href="http://developer.yahoo.com/everything.html">ecossistema</a> de tecnologias de compartilhamento de dados que o Yahoo! disponbiliza (tais como <a href="http://developer.yahoo.com/yql/">YQL</a> e <a href="http://developer.yahoo.com/oauth/">oAuth</a>) e fez a gente criar o <a href="http://memethis.com">MemeThis</a>: um site que em poucos segundos gera o tão sonhado botão (<em>bookmarklet</em>, tecnicamente falando) personalizado para a sua conta no Meme.</p>
<p>O <a href="http://sourceforge.net/projects/memethis/">código-fonte</a> é escrito em Java, e é <a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">livre</a>. A parte dos bastidores (que faz toda a mágica acontecer) roda no <a href="http://appengine.google.com/">Google App Engine</a> &#8211; como bem observou um <a href="http://ricbit.com/">amigo</a> nosso, usamos uma linguagem da Sun para ampliar um serviço do Yahoo! usando um outro serviço do Google. <em>Web 2.0</em> é isso! :-P</p>
<p>Apesar de ainda ser uma versão beta, já tem bastante gente usando. E agora não é preciso mais mendigar convites: o Yahoo! Meme está aberto para todos, é só ir <a href="http://meme.yahoo.com/home/">lá</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2009/10/memethis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>simpleyql &#8211; usando as APIs do Yahoo! em Java</title>
		<link>http://chester.blog.br/archives/2009/09/simpleyql-usando-as-apis-do-yahoo-em-java.html</link>
		<comments>http://chester.blog.br/archives/2009/09/simpleyql-usando-as-apis-do-yahoo-em-java.html#comments</comments>
		<pubDate>Sat, 26 Sep 2009 06:21:23 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/?p=3451</guid>
		<description><![CDATA[O simpleyql é uma biblioteca que facilita bastante o desenvolvimento de aplicações em Java que manipulem dados de usuários do Yahoo! Meme (ou de quaisquer sites do Yahoo! que estejam expostos via YQL e oAuth).
Na teoria, é possível usar uma biblioteca de oAuth pré-existente para isso (o próprio simpleyql se baseia em classes disponíveis no [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://simpleyql.sourceforge.net/">simpleyql</a> é uma biblioteca que facilita bastante o desenvolvimento de aplicações em Java que manipulem dados de usuários do <a href="http://meme.yahoo.com">Yahoo! Meme</a> (ou de quaisquer sites do Yahoo! que estejam expostos via <a href="http://developer.yahoo.com/yql/">YQL</a> e <a href="http://developer.yahoo.com/oauth/">oAuth</a>).</p>
<p>Na teoria, é possível usar uma biblioteca de oAuth pré-existente para isso (o próprio simpleyql se baseia em <a href="http://oauth.googlecode.com/svn/code/java/core/">classes disponíveis no oauth.net</a>), mas quando eu e a  <a href="http://baniverso.com/">Bani</a> começamos o <a href="http://memethis.com/">MemeThis</a> (falo dele em outro post) vimos que as particularidades do Y! tornariam o código demasiadamente complexo.</p>
<p>Além disso, essas classes exigem um grau de entendimento de oAuth maior do que o puramente conceitual. E o fato de o Yahoo! disponibilizar <a href="http://developer.yahoo.com/social/sdk/">bibliotecas para outras linguagens</a> &#8211; mas <strong>não</strong> para Java &#8211; foi a gota d&#8217;água que motivou a criação da biblioteca.</p>
<p>Com ela, basta uma quantidade mínima de <a href="http://sourceforge.net/apps/mediawiki/simpleyql/index.php?title=Usage">código</a> para iniciar o processo de autorização do usuário &#8211; um passo necessário quando ele acessa sua aplicação pela primeira vez. Dali em diante basta manter a chave de acesso atualizada no banco de dados ou equivalente, e você poderá usá-la em uma chamada simples sempre que quiser interagir com o Y! em nome da pessoa.</p>
<p>Parece simples? Ótimo, essa era a idéia: encapsular os <a href="http://developer.yahoo.com/oauth/guide/oauth-auth-flow.html">detalhes</a> do vai-e-vem de tokens e permitir ao desenvolvedor focar apenas na aplicação. A biblioteca é compatível com o <a href="http://appengine.google.com">Google App Engine</a> (o MemeThis roda nele), então não tem mais desculpa: se a sua praia é Java, a hora de desenvolver pro Yahoo! Meme é agora.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2009/09/simpleyql-usando-as-apis-do-yahoo-em-java.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EDGE Switch</title>
		<link>http://chester.blog.br/archives/2008/08/edge_switch.html</link>
		<comments>http://chester.blog.br/archives/2008/08/edge_switch.html#comments</comments>
		<pubDate>Fri, 08 Aug 2008 22:25:34 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/archives/2008/08/edge_switch.html</guid>
		<description><![CDATA[O EDGE Switch é um programa que desenvolvi para o iPhone com o objetivo de bloquear/liberar a conexão de dados da operadora (EDGE). Isso é necessário porque o sistema operacional da Apple assume que o seu plano de dados é...
]]></description>
			<content:encoded><![CDATA[<p><span class="mt-enclosure mt-enclosure-image"><img src="http://chester.blog.br/archives/img/on.png" width="57" height="59" class="mt-image-right right alignright"></span>O EDGE Switch é um programa que desenvolvi para o iPhone com o objetivo de bloquear/liberar a conexão de dados da operadora (<a href="http://pt.wikipedia.org/wiki/EDGE">EDGE</a>). Isso é necessário porque o sistema operacional da Apple assume que o seu plano de dados é generoso e usa esta conexão sem perguntar quando não encontra uma rede sem fio.</p>
<p><strong>UPDATE</strong>: Este programa foi criado no início dos tempos do iPhone, quando mal existia SDK oficial. Ele não foi testado com o OS 2.x/3.x, e com certeza existem alternativas melhores (como o SBSettings) para fazer isso hoje. Mas o código-fonte permanece online para fins de curiosidade e para ilustrar o mínimo do mínimo que a parte não-visual de uma aplicação iPhone tem que ter.<br />
<span id="more-2182"></span></p>
<p>Existem outras formas de bloquear esta conexão (<a href="http://code.google.com/p/bossprefs/">Boss Prefs</a>, <a href="http://tinyurl.com/5jn6lg">alteração manual da configuração</a>, etc.), mas nenhuma me atendia. As vantagens do EDGE Switch são:</p>
<ul>
<li>Ele mostra o status (bloqueado/desbloqueado) no próprio ícone, na tela principal do iPhone;</li>
<li>Para mudar o estado, basta um toque no ícone, sem burocracia;</li>
<li>A configuração não se perde ao reiniciar.</li>
</ul>
<p>A grande desvantagem: ele reinicia o telefone para bloquear/liberar. Não é tão ruim assim (o reinício é rápido), mas se isso for um problema, talvez este software não seja para você.</p>
<p>O <a href="http://sourceforge.net/projects/edgeswitch/">código-fonte</a> está disponível sob a licença GPL. Os ícones são mais um excelente trabalho do <a href="http://felippo.net">Felippo</a>.</p>
<p>
<b>Instalação, Uso e Remoção</b></p>
<p>Para instalar, é preciso ter o iPhone liberado para instalar aplicativos de terceiros. No Installer, entre em &#8220;Sources&#8221; e adicione o meu repositório: <font face="courier">http://chester.blog.br/iphone</font>. Com isso o programa vai aparecer na categoria &#8220;Utilities&#8221;.</p>
<p>Depois de instalar ou atualizar o software, você verá o ícone amarelo. Clique uma vez nele, e o fone irá reiniciar, mostrando o ícone vermelho (EDGE bloqueado) ou o azul (EDGE liberado).</p>
<p>Não é preciso entrar no programa para saber se o EDGE está bloqueado ou liberado &#8211; é só olhar o ícone (que reflete o estado em que o programa deixou o iPhone na última vez em que foi chamado).</p>
<p><b>IMPORTANTE:</b> Antes de remover o programa, certifique-se de que o EDGE está liberado (ícone azul). Se você remover com o EDGE desligado, vai ter que reinstalar pra ligar (ou remover manualmente).</p>
<p>
<b>Funcionamento e Limitações</b></p>
<p>O que o programa faz é automatizar o procedimento de entrar nos menus e invalidar/revalidar a configuração do EDGE (colocando ou retirando um &#8220;[off]&#8221; no final do endereço APN). A parte mais chata é que ele reinicia o telefone (porque eu não consegui fazer o iPhone reconhecer a mudança de outra forma &#8211; se alguém souber como, me fale ou altere no <a href="http://edgeswitch.svn.sourceforge.net/viewvc/edgeswitch/trunk/EDGESwitch/src/edgeswitch.m?revision=2&amp;view=markup">código-fonte</a>).</p>
<p>Ele foi testado com o firmware 1.1.4, e imagino que funcione em versões anteriores sem problemas (mas não testei). Também não foi testado ainda no 2.0, e não tenho certeza se funcionará (por conta das mudanças introduzidas para suportar conexões 3G). Procurei ser extremamente conservador ao editar o arquivo, abortando a operação ao primeiro sinal de diferenças com o que eu tenho no meu telefone, mas o uso é por sua conta e risco.</p>
<p>
<b>Avisos Legais</b></p>
<p>Ele foi feito para uso pessoal, e disponibilizado na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Em particular não me responsabilizo se ele não tiver o efeito desejado, ou apresentar qualquer incompatibilidade com o seu aparelho ou sistema operacional. Veja a Licença Pública Geral GNU para maiores detalhes.</p>
<p>Este programa é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 3 da Licença, ou (na sua opnião) qualquer versão.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2008/08/edge_switch.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>timefix (ou: Acertando o Horário de Verão em Java II)</title>
		<link>http://chester.blog.br/archives/2007/02/timefix.html</link>
		<comments>http://chester.blog.br/archives/2007/02/timefix.html#comments</comments>
		<pubDate>Sat, 24 Feb 2007 18:12:10 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/archives/2007/02/timefix.html</guid>
		<description><![CDATA[Ano passado escrevi um texto sobre o problema do Java com o horário de verão, explicando as causas, apontando soluções comuns e sugerindo uma nova - cuja principal vantagem é dispensar alterações no código-fonte da aplicação afetada. Sua maior...
]]></description>
			<content:encoded><![CDATA[<p><img src="http://chester.blog.br/archives/img/timezone.jpg" alt="" width="200" height="212" align="right" /></p>
<p>Ano passado escrevi um <a href="http://chester.blog.br/archives/2006/10/acertando_o_hor.html">texto sobre o problema do Java com o horário de verão</a>, explicando as causas, apontando soluções comuns e sugerindo uma nova &#8211; cuja principal vantagem é dispensar alterações no código-fonte da aplicação afetada.</p>
<p>Sua maior desvantagem é que o arquivo com o código de correção tem que ser recompilado a cada mudança de regra do horário de verão (i.e., uma vez por ano, pelo menos) e re-copiado em cada servidor  &#8211; o que fica complicado quando se cuida de dezenas ou centenas deles.</p>
<p>Em vista disso (e com a ajuda da classe <a href="http://www.bmsi.com/java/#TZ">ZoneInfo</a>, de autoria de Stuart D. Gathman), criei o <strong>timefix</strong> &#8211; uma biblioteca que lê automaticamente o arquivo <code>/etc/localtime</code> do servidor, ajusta o timezone default e chama a aplicação final. Desta forma, basta reiniciá-la quando o arquivo for atualizado parq que as novas datas de início e fim do horário de verão entrem em vigor.</p>
<p><span id="more-2285"></span></p>
<p>A <a href="http://code.google.com/p/timefix/">página do projeto</a> no Google Code hospeda o código-fonte e a biblioteca compilada (disponíveis sob a licença <a href="http://www.gnu.org/licenses/lgpl.html">LGPL</a>).</p>
<p><strong>Download e Instalação</strong></p>
<p>Para usar, basta <a href="http://code.google.com/p/timefix/downloads/list">baixar o timefix-1.0.jar</a> (ou a versão mais atual, se houver) e fazer duas mudanças no script de inicialização do servidor (ex.: no <code>catalina.sh</code> do Tomcat, ou no <code>/etc/init.d/minha_aplicacao</code>):</p>
<ol>
<li>Adicionar o .jar no CLASSPATH. Ex.: <code>export CLASSPATH=$CLASSPATH:timefix-1.0.jar</code></li>
<li>Colocar o texto &#8220;tiimefix&#8221; antes do nome da classe original. Por exemplo, se o script original era:<code> java com.xyz.ClassePrincipalDaMinhaApp param1 param2 param3</code>
<p>mude para:</p>
<p><code> java <span style="color:red">timefix</span> com.xyz.ClassePrincipalDaMinhaApp param1 param2 param3</code></li>
</ol>
<p>Desenvolvedores de aplicações preocupados com a questão podem também efetuar a chamada ao método <a href="http://timefix.googlecode.com/svn/trunk/timefix/docs/br/blog/chester/timefix/Timefix.html#fixTimeZone()"><code>fixTimeZone()</code></a> ao inicializar a mesma (ou em intervalos regulares, dispensando o restart quando houver mudança nas regras). Mas este método torna a aplicação dependente do SO hospedeiro (pessoalmente, não recomendo isso).</p>
<p><strong>Sistemas operacionais suportados</strong></p>
<p>Esta solução só funciona em Linux e outros sistemas estilo Unix que usem o formato do <a href="http://www.twinsun.com/tz/tz-link.htm">banco de dados <code>tz</code></a> (e exige que o arquivo de timezone compilado &#8211; ou um link simbólico para ele &#8211; esteja no <code>/etc/localtime</code>). Testei em Linux (Ubuntu 6.06.1 / Kernel 2.6.15) e em Mac OS X (10.4.8).</p>
<p>Administradores de servidores Windows podem tentar criar o diretório <code>\etc\localtime</code> no drive onde a aplicação roda e copiar um arquivo de timezone compilado para lá (ex.: copiado de uma máquina Linux ou da web). Não tentei fazer isso, mas teoricamente funciona &#8211; se alguém fizer funcionar na prática vale deixar um comentário.</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2007/02/timefix.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>A Busca de Epaminondas Jr.</title>
		<link>http://chester.blog.br/archives/2006/06/a_busca_de_epam.html</link>
		<comments>http://chester.blog.br/archives/2006/06/a_busca_de_epam.html#comments</comments>
		<pubDate>Tue, 20 Jun 2006 06:41:10 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/archives/2006/06/a_busca_de_epam.html</guid>
		<description><![CDATA[Este jogo, criado no início dos anos 90, foi uma das primeiras coisas que disponibilizei na web, não sem um certo constrangimento: minha definição de "humor" mudou um pouco ao longo dos últimos quinze anos. Embora o jogo não use...
]]></description>
			<content:encoded><![CDATA[<p><img width="300" height="127" src="http://chester.blog.br/img/epamin.gif" alt="tela do jogo 'A Busca de Epaminondas Jr.'" align="right" style="margin-left:2px">Este jogo, criado no início dos anos 90, foi uma das primeiras coisas que disponibilizei na web, não sem um certo constrangimento: minha definição de &#8220;humor&#8221; mudou um pouco ao longo dos últimos quinze anos.</p>
<p>Embora o jogo não use (nem de longe) os recursos dos PCs modernos, os e-mails que recebo mostram que ainda hoje há quem se divirta um pouco com ele. Este fenômeno curioso me levou a falar um pouco mais a respeito &#8211; incluindo algumas curiosidades e dicas para ajudar quem ficou travado em algum quebra-cabeças.</p>
<p><span id="more-2324"></span></p>
<p><b>Como Jogar</b></p>
<p>O jogo é do tipo &#8220;text adventure&#8221;, ou seja, você assume o papel de um personagem (Epaminondas) que tem uma missão a cumprir: recuperar um disquete perdido por seu patrão. Para cumprir esta missão você terá que interagir com o mundo do jogo, através das seguintes janelas:</p>
<p><img width="486" height="157" src="http://chester.blog.br/archives/img/epa_mensagens.png"/><br />
Sempre que você entra num local, uma descrição do mesmo (e dos objetos que estão visíveis) aparece aqui. Suas ações também terão seus resultados mostrados nesta janela, enfim, a história do jogo corre nela.</p>
<p><img width="529" height="36"  src="http://chester.blog.br/archives/img/epa_comando.png"><br />
Aqui você digita os comandos. Um comando é sempre composto por um verbo e um objeto, sendo os termos intermediários eliminados. Por exemplo, CONVERSAR COM O HOMEM e CONVERSAR HOMEM produzem o mesmo resultado.</p>
<p><img width="113" height="85"  src="http://chester.blog.br/archives/img/epa_direcoes.png" ><br />
A janela de direções permite a você saber quais saídas estão disponíveis, nas seis direções: norte, sul, leste, oeste, cima e baixo. Você pode andar numa direção com o comando completo (ex.: IR PARA O SUL ou IR SUL) ou apenas digitando a inicial (ex.: S).</p>
<p><img width="160" height="157"  src="http://chester.blog.br/archives/img/epa_objetos.png" ><br />
Muitos dos enigmas do jogo consistem em PEGAR e USAR objetos na hora certa (ou mesmo DEIXAR um objeto para que um personagem o pegue). Esta janela lista os objetos que você tem em mãos(caso tenha mais objetos do que as linhas da janela, o comando LISTAR permite revelar os que estão ocultos).</p>
<p><img width="530" height="48" src="http://chester.blog.br/archives/img/epa_avisos.png"><br />
Além de avisos como &#8220;pressione qualquer tecla para continar&#8221;, esta última janela exibe um menu de opções quando você tecla ESC. Neste menu você pode salvar (gravar) o jogo em andamento, carregar um jogo salvo anteriormente, obter ajuda, reiniciar ou sair do programa.</p>
<p>
<b>Download e Instalação</b></p>
<p>Para instalar é só baixar o <a href="http://chester.blog.br/download/epa15.zip">epa15.zip</a> (84KB), descompactar em qualquer pasta e dar um duplo clique no AVENTURA.BAT. </p>
<p>Qualquer PC deve ser capaz de rodar este jogo (ele foi desenvolvido em um PC-XT de 4.77Mhz e 512KB, i.e., 0,5MB de RAM), independente da versão de DOS ou Windows.</p>
<p>Algumas versões (notadamente o Windows NT e o 2000) eventualmente se enroscam com a abertura &#8211; se for o caso, clique no CA1.EXE ao invés do AVENTURA.BAT e vá direto ao jogo (sua vida não será a mesma sem os os sons bizonhos no alto-falante e o clássico &#8220;T&#8221; pulando, mas é o jeito).</p>
<p>Para &#8220;entrar no clima&#8221;, sugiro dar um Ctrl+Enter (mudando para o modo &#8220;tela cheia&#8221;, se o seu Windows e driver de vídeo suportarem). O ideal era arrumar um monitor monocromático de fósforo verde, mas esse eu sei que é mais difícil.</p>
<p>Tentei rodar no Mac (PPC) via DOSBox, sem muito sucesso &#8211; talvez em Linux, ou em Mac com plataforma Intel a coisa funcione melhor. Se alguém tiver uma dica nesse sentido, agradeço!</p>
<p>
<b>Dicas</b></p>
<p>O jogo possui cinco &#8220;fases&#8221; distintas, e uma vez alcançada uma nova fase, você não volta à anterior. Isso tem um efeito colateral desagradável: existe a possibilidade de você deixar um objeto importante para trás (é uma chance pequena, afinal, é preciso fuçar muito para encontrar a saída de cada uma delas).</p>
<p>Por isso, grave o jogo sempre que entrar numa nova fase (ESC, Gravar), com um nome diferente (ex.: INICIOF1, INICIOF2). Aliás, a sua taxa de mortalidade nesse jogo é alta, recomendo gravar sempre que tiver algum tipo de sucesso.</p>
<p>A coisa mais importante é OLHAR (ou EXAMINAR) todos os objetos e pessoas que encontrar. EXAMINAR LOCAL geralmente vai repetir a descrição dada, mas vale a pena EXAMINAR PAREDE, EXAMINAR CHAO e outros cantinhos desse gênero, sobretudo em lugares diferenciados.</p>
<p>Você pode CONVERSAR com boa parte dos personagens encontrados, e costumam sair boas dicas daí. Cuidado com os jogos de palavras &#8211; creio que a falta de mulher me deixou um pouco cruel nessa época.</p>
<p>Um dado importante: não é possível DAR um item a alguém, porque o jogo só entende frases com um verbo e um objeto. Se você quiser dar um objeto a um personagem, basta DEIXAR o objeto. Se o personagem se interessar, ele pega, senão você pode pegar ele de volta.</p>
<p>O jogo não gosta de palavrões &#8211; a insistência pode enfurecê-lo, e ele não vai se preocupar com o andamento do jogo se isso acontecer.</p>
<p>A maior parte dos objetos tem alguma utilidade. Não contei, mas creio que são apenas dois ou três que não servem pra nada, e dificilmente um objeto é usado mais de uma vez. Não tem limite, então pegue tudo o que conseguir.</p>
<p>Cada um joga adventures de texto à sua maneira, mas eu me dou muito melhor desenhando um mapa à medida em que vou jogando. Mudanças de plano (cima/baixo) exigem criativade, por isso não as usei muito no jogo. Quando um meio de transporte te levar a um lugar novo (e não for possível voltar), comece um novo mapa.</p>
<p>Eu costumava desenhar na mão, mas usando uma planilha eletrônica moderna foi possível esboçar o mapa abaixo em poucos minutos. Ele mostra os primeiros locais do jogo, dando uma idéia de como começar. À medida que o jogo prossegue, pode-se anotar a posição de objetos e personagens relevantes, enfim, tudo o que puder ajudar lá adiante, caso seja preciso retomar.</p>
<p><center><img width="470" height="395" src="http://chester.blog.br/archives/img/epa_mapa.png" ></center></p>
<p>
<b>Curiosidades Gerais</b></p>
<ul>
<li>O velhinho é uma &#8220;homenagem&#8221; ao velho amigo (ou seria amigo velho) Hilton, fanático por xadrez na época. O triste é que eu acho que ele é mais novo que eu&#8230;</li>
<li>Eu tinha 14 anos quando comecei a desenvolver o jogo (1989). Após dois anos de engavetamento e desengavetamento ele tomou sua forma final (a versão que eu chamo de 1.5b). A única mudança que fiz depois disso foi quando coloquei na web: o arquivo <a href="http://chester.blog.br/download/leiame_epa.html">LEIAME.TXT</a> (clique para ver em HTML) substituiu o programa LEIAME.</li>
<li>Muitas coisas boas (e algumas das ruins) foram inspiradas por adventures da Sierra On-Line para PC, notadamente por Leisure Suit Larry.  Adventures do Apple II (The Incredible Hulk e Swiss Family Robinson me vêm à mente) também influenciaram.</li>
<li>A quantidade de dinheiro que você tem no jogo flutua. Eu pensei em fazer itens &#8220;compráveis&#8221; (como no Larry), mas o jeito com que o jogo lida com isso ficou bacana no final.</li>
<li>Quando o jogo estava em desenvolvimento, havia um jeito de se &#8220;teleportar&#8221; para qualquer local, digitando BEIJAR AKIRA (eu gostava muito de <a  href="http://en.wikipedia.org/wiki/Akira_%28manga%29">Akira</a>, era o gibi mais legal da galáxia para mim naquela época). Na versão final eu sumi com o AKIRA, impossibilitando esta brincadeira, mas se você tentar ele apenas vai dizer que ele não está ali (ou seja, a palavra AKIRA permaneceu no dicionário).</li>
<li>Por conta de limitações técnicas (vide seção seguinte para detalhes), o jogo usa o trema (¨) no lugar do til (~), e aspas simples (&#8216;) no lugar das duplas (&#8220;). No entanto, eu também eu colocava um espaço em branco entre o final da frase e o ponto de interrogação/exclamação, e <b>isso</b> não era limitação técnica, mas pessoal. Só parei com essa mania vários anos depois, ao perceber que não faz o menor sentido estético ou gramatical.</li>
<li>O jogo tem dois finais (dependendo de você ter encontrado ou não uma chave, escondida em  um lugar bem improvável).</li>
</ul>
<p>
<b>Curiosidades Técnicas</b></p>
<ul>
<li>O jogo é todo feito em Turbo Basic (uma tentativa da Borland de repetir o sucesso do Turbo Pascal nesta linguagem). Num dado momento, estourei o limite (32K ou 64K, não lembro) do editor, e não cosneguia mais dar andamento no jogo. Tentei migrar para o Microsoft QuickBasic (versão compilada do QBasic que vinha com o MS-DOS 5.0), mas ele era muito instável (mais que o Turbo Basic, que não era exatamente pacífico também).</p>
<p>A solução foi voltar para o Turbo Basic. Fiz um programinha que extraía as strings do código-fonte original para um arquivo à parte, e substituia elas por referências a um array, que eu carregava na inicialização do programa, o que me deu mais fôlego. Hoje fico pensando se o Turbo Basic não tinha algum sistema de múltiplos fontes (quase que certamente tinha), ou se poderia ter tentado um editor externo, mas na época foi a solução que eu consegui.</li>
</p>
<li>A abertura foi feita em C (não lembro em qual compilador). Eu cheguei a fazer ela quase toda em Turbo Basic também, mas não consegui resolver o lance do som sair junto com a animação, então apelei.</li>
<li>Eu desconhecia qualquer teoria sobre parsers, analisadores léxicos e afins. O processo de parse consistia em remover palavras não-relevantes (artigos, preposições), indexar o verbo e o objeto (recorrendo a um dicionário de sinônimos) e chamar a subrotina correspondente ao verbo, sem maiores sofisticações.</li>
<li>A programação teve forte influência do adventure da INPUT e de outras revistas e livros de programação da época.</li>
<li>O jogo foi desenvolvido num XT com monitor CGA monocromático. Quando tive acesso a uma máquina com monitor colorido (EGA), a primeira coisa que fiz (depois de rastejar e implorar por alguns minutinhos para o funcionário da <a href="http://www.educacao.sp.gov.br/">SEE/SP</a> que a ocupava) foi testar lá &#8211; onde vi que as cores eram absolutamente estapafúrdias e ilegíveis. Mudar para cores bacanas estragava o jogo no monitor de fósforo verde, então estabeleci um meio-termo, que é o que se vê hoje.</li>
<li>O uso do trema no lugar do til se deve ao fato de que a maioria (se não todas) das placas de vídeo CGA não permitia trocar a tabela de caracteres (vulgo &#8220;codepage&#8221;) padrão quando se estava em modo texto. Esta tabela, conhecida como <a href="http://en.wikipedia.org/wiki/Code_page_437" target="blank">CP437</a> associava aos códigos &#8220;00&#8243; e &#8220;01&#8243; os caracteres &#9786; e &#9787;, respectivamente &#8211; o que fazia com que as pessoas definissem arquivos executáveis e binários em geral (onde esses códigos de valor baixo aparecem bastante) como &#8220;aquelas bagunças cheias de carinhas&#8221;.</li>
<li>Já as aspas simples eram preferidas porque, em Basic, as aspas duplas são reservadas como delimitadores de strings, obrigando o uso de uma seqüência de escape (que nem sei se existia no Turbo Basic) ou de concatenação (que consumiria tempo de desenvolvimento e memória). Ao contrário da questão do til, essa até daria para contornar, mas seria trabalhoso.</li>
<li>Eu perdi o código fonte. Já na época não era exatamente um motivo de orgulho (ficou muito macarrônico no final, à medida em que eu me apressava pra terminar), mas hoje seria curios dar uma olhada. Não sei se o código é passível de compilação reversa (e vai demorar para que eu tenha tempo e saco de desassemblar e dar uma fuçada), mas um compilador reverso de Turbo Basic 1.0 me divertiria um bocado se revelasse esse ecodo passado.</li>
</ul>
<p>
<b>Dicas apelativas <font color="red">(SPOILER &#8211; vai estragar algumas surpresas)</font></b></p>
<p>Essas dicas não chegam a entregar a solução do jogo, mas sugerem o caminho. É mais para o caso de você realmente enroscar em algum ponto. Caso prefira, pode <a href="http://chester.blog.br/fale.html">me mandar um e-mail</a> falando de onde você enroscou, e eu tentarei ajudar da melhor forma possível.</p>
<p>Mapa 1 (Escritório):</p>
<p>A rua é a saída evidente aqui, mas é preciso achar algum meio de transporte. Além disso, é preciso saber para onde foi o ladrão &#8211; deve ser alguém do escritório, o que sugere procurar pistas por lá. Mas é preciso OLHAR com muita insistência. E não deixe a fase sem explorar tudo o que a biblioteca tem a oferecer &#8211; saiba a hora de CONVERSAR com as pessoas e a hora de ENTRAR direto nas coisas, e você sairá de lá mais iluminado.</p>
<p>Mapa 2 (Campus):</p>
<p>O seu meio de transporte não vai te levar muito longe. É preciso recorrer à agência de viagens &#8211; mas quem disse que você tem passagem? O jeito é procurar &#8211; mas a faculdade ao sul não aceita gente sem cultura (ou seria sem dinheiro?) como Epaminondas, e gangues de punks e carecas no norte podem causar problemas, sobretudo se uma achar que você pertence à outra.</p>
<p>Tente tirar proveito de uma delas (há males que vêm pra bem), e você conseguirá entrar na faculdade, sem nem prestar vestibular. Ali você verá que valeu a pena passar um tempo na biblioteca &#8211; especialmente quando for procurar em lugares mais escuros &#8211; mas ainda lhe falta algo. Talvez um passeio na quadra de esportes te ajude a relaxar e encontrar o que precisal.</p>
<p>Mapa 3 (Bairro):</p>
<p>&#8220;Aha &#8211; the plot thickens&#8230;&#8221; (vide Kill Bill, vol. 2). Logo ao leste você descobre alguém que pode te ajudar, mas nada nessa vida é grátis (e nesse caso, nem muito barato é). Dá pra suspeitar da atividade criminosa nessa cidade &#8211; tem grana alta escondida em algum lugar, mas pode ser preciso abrir o caminho na base da ignorância pra encontrar.</p>
<p>E pra isso é preciso uma ferramenta &#8211; que o velhinho pode te dar se você der a ele o que ele tanto quer (lembre-se sempre: dar é DEIXAR algo no local). Vasculhe teto por teto, chão por chão, parede por parede, até achar algo vulnerável.</p>
<p>Você verá nesta fase que a falta de mulher leva as pessoas a medidas desesperadas &#8211; mas a falta de recursos também é um problema sério, então aproveite a distração dessas pessoas e veja se pelo menos um convite pra uma balada legal você descola.</p>
<p>Mapa 4 (BucanoWare Inc):</p>
<p>Só o taxista pra te tirar daqui. E ele não fala a sua língua, então é preciso achar algo que faça sentido para ele (mesmo que não faça sentido para você). Revire cada canto, meta a mão no lixo se isso for preciso &#8211; mas não esqueça de procurar um lugar pra lavar a mão depois, pois você pode achar algo útil nessa busca. </p>
<p>Mapa 5: (Danceteria).</p>
<p>Bastante coisa pra explorar. O mair importante é tirar o DJ da mesa, atraindo-o para longe. O truque é achar algo que interesse a ele, mas não bastará entregar de mão beijada. Em seguida, segredos serão revelados, mas o desafio final dependerá apenas de você. Esteja em ponto de bala!</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2006/06/a_busca_de_epam.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>miniTruco: jogo para celular grátis, com opção multiplayer (via Bluetooth e GPRS)</title>
		<link>http://chester.blog.br/archives/2006/01/mt.html</link>
		<comments>http://chester.blog.br/archives/2006/01/mt.html#comments</comments>
		<pubDate>Wed, 11 Jan 2006 07:37:04 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/archives/2006/01/mt.html</guid>
		<description><![CDATA[O miniTruco é um jogo de cartas gratuito para telefones celulares e outros dispositivos móveis que suportem Java (J2ME), que pode ser jogado individualmente, ou em grupos de até 4 pessoas (via Bluetooth ou Internet/GPRS). Você também pode jogar direto...
]]></description>
			<content:encoded><![CDATA[<p>O miniTruco é um jogo de cartas gratuito para telefones celulares e outros dispositivos móveis que suportem Java (J2ME), que pode ser jogado individualmente, ou em grupos de até 4 pessoas (via Bluetooth ou Internet/GPRS).</p>
<p>Você também pode jogar direto nesta pagina, usando o <i>gadget</i> à direita. Também é possível adicioná-lo à sua página pessoal no Google (e, em breve, no Orkut). O código original é de minha autoria, mas está disponível como código livre (GPL), o que permitiu a diversos desenvolvedores adicionar estratégias e novas características.</p>
<p>O endereço oficial do jogo é <a href="http://chester.blog.br/minitruco">http://chester.blog.br/minitruco</a>. Este post foi atualizado em 10/11/2007.</p>
<p><span id="more-2343"></span></p>
<p>&nbsp;</p>
<p><b><a name="instalacao"></a>Download e Instalação</b><br />
<br/><br/></p>
<div style="min-width:150px;text-align:center; border-color:#FF0000;padding:4px;float:left;margin-right:6px;border-color:black;border-style:dashed"><span style="color:#FF0000; font-weight: bold;">Versão 3.17 &#8211; Ago/09</span><br/><br/><a href="http://chester.blog.br/m/deploy/miniTruco.jar">Baixar o miniTruco.jar</a><br/><a href="http://chester.blog.br/m/deploy/miniTruco.jad">Baixar o miniTruco.jad</a><br/><br/><br />
<a href="http://chester.blog.br/m/deploy/miniTrucoLight.jar">Versão <i>light</i> (.jar)</a><br/><a href="http://chester.blog.br/m/deploy/miniTrucoLight.jad">Versão <i>light</i> (.jad)</a><br/><br/>
</div>
<p>Se você consegue navegar na internet usando o celular, vá ao endereço <span style="font-family:  Courier, 'Courier New', monospace">m.chester.blog.br</span>. Gasta-se alguns centavos (as operadoras cobram pelo tráfego de dados) mas vale a pena.</p>
<p>Outra alternativa é baixar para o PC (e transferir via cabo ou Bluetooth, seguindo as instruções do fabricante do celular), usando um dos links ao lado.</p>
<p>O jogo possui uma versão <i>light</i>, que não inclui as opções de jogo multiplayer, mas exige menos memória (se você experimentar erros do tipo <i>OutOfMemory</i> com a versão completa, experimente esta).</p>
</p>
<p style="clear: left;"><br/><b>Instruções</b></p>
</p>
<p>O jogo é feito com duas duplas, e tanto seu parceiro quanto os adversários são controlados pelo celular (a não ser no jogo multiplayer, vide abaixo).</p>
<p>Mova o joystick do celular lateralmente para escolher a carta, e seleicone ou mova para cima para jogá-la.  O joystick para baixo joga ela virada (sem mostrar o valor).</p>
<p>Caso um jogador peça truco, os dois adversários irão decidir se querem entrar (&#8220;descer&#8221;) ou não (&#8220;correr&#8221;). Basta que um deles aceite para que o truco ocorra &#8211; se o seu parceiro for impulsivo e topar o truco, você não pode fazer nada a respeito. Truco é isso. </p>
<p>Na mão de 11, você poderá ver, por alguns segundos, as cartas do adversário, e vale o mesmo que no truco: se um dos dois aceitar, está aceito.</p>
<p>A maior diferença com relação ao jogo tradicional é que só é possível pedir truco na sua vez (o que não limita muito, já que é raro trucar fora da vez mesmo). Além disso, apenas um membro da dupla pode jogar carta fechada na segunda e terceira rodadas (na primeira não se joga fechada nunca).</p>
<p>Para jogar via Bluetooth, um dos celulares deverá acionar o menu Criar Jogo, e os outros entram no menu Procurar Jogo. Ambos estão dentro do menu Bluetooth &#8211; se não aparecer, seu celular não suporta o jogo neste modo). O celular que criar o jogo controla a disposição dos adversários e inicia a partida. Caso haja menos que quatro jogadores, as posições vazias são controladas pelo jogo.</p>
<p>Para jogar via Internet (GPRS), entre no menu Internet e selecione uma conexão que ofereça acesso completo (ex.: Claro Dados, Tim Web/Tim Connect). Conexões com proxy (ex.: Tim WAP, Claro WAPGPRS) não irão funcionar. Sua operadora irá cobrar pelos dados transferidos (uma partida transfere em torno de 1 ou 2KB). Escolha um apelido, entre numa sala (o usuário mais antigo da sala controla o funcionamento dela) e boa diversão.</p>
<p>O menu Ajuda oferece instruções para o jogo, explicação das regras do truco e créditos.</p>
<p>
<b>Críticas, Sugestões e Suporte</b></p>
<p>Os comentários neste post estão desabilitados, mas você pode participar do <a href="http://groups.google.com/group/minitruco">grupo Google de discussões gerais sobre o miniTruco</a>. É o melhor canal para esclarecer dúvidas sobre o jogo no seu celular em particular (de preferência pesquisando para ver se a sua dúvida já foi sanada lá antes de postar). Eu tenho acesso a poucos celulares, então é mais fácil alguém no grupo conseguir te ajudar nesse sentido do que eu.</p>
<p>
<b>Créditos / Agradecimentos</b></p>
<p>O desenvolvimento e o visual do jogo são de <a href="http://chester.blog.br/pessoal.html">minha</a> autoria. As estratégias da CPU (até o momento) foram desenvolvidas pelo <a href="http://www.linux.ime.usp.br/~willian/cc.html" >Willian Gigliotti</a> (<a href="http://www.orkut.com/Profile.aspx?uid=14594091544512270501" >Orkut</a>) e pelo Leonardo Sellani, e, mais recentemente, pelo Sandro Rodrigo Gasparoto (que também deu uma &#8220;animada&#8221; na gritaria &#8211; parte essencial de um jogo de truco &#8211; e desenvolveu o modo &#8220;confronto&#8221;, que testa uma estratégia contra a outra).</p>
<p>Gostaria de agradecer a todos os que colaboraram, incluindo o Cassiano (por hospedar o servidor), a Michelle pelas dicas visuais, e a minha esposa, por tolerar mais este projeto sem fins lucrativos.</p>
<p>
<b>Código-Fonte e Informações para Desenvolvedores</b></p>
<p>O código fonte fica hospedado no Google Code. Na <a href="http://code.google.com/p/minitruco/" >página do projeto</a> você pode examiná-lo no browser ou baixar usando um cliente Subversion. O uso é permitido dentro dos termos da <a href="http://www.gnu.org/copyleft/gpl.html" >licença de uso GPL</a>.</p>
<p>Recomendo a leitura do <a href="http://minitruco.googlecode.com/svn/trunk/miniTruco/docs/index.html">Guia para Desenvolvedores</a>, que ensina a configurar um ambiente de desenvolvimento, explica a arquitetura geral do jogo (com diagramas de classe e colaboração) e oferece dicas úteis.</p>
<p>Na <a href="http://groups.google.com/group/minitruco_desenv" >lista de discussão para desenvolvedores</a> você pode tirar dúvidas técnicas não respondidas nestes documentos ou quiser discutir assuntos relacionados ao desenvolvimento no miniTruco.</p>
<p>
<b>Screenshots (telas)</b></p>
<ul>
<li><a href="http://www.chester.blog.br/archives/img/minitruco_gde.png">Jogo em execução no emulador, em tela grande e pequena</a>.</li>
<li><a href="http://www.chester.blog.br/archives/img/mt_multi.png">Jogo multiplayer rodando em 4 emuladores (no fundo, o Eclipse e o código-fonte)</a>.</li>
</ul>
<p style="text-align:center"><a href="http://chester.blog.br/minitruco_en"><img border="0" alt="see this page in english" src="img/ukflag.gif"><br/>This page in English</a></a></p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2006/01/mt.html/feed</wfw:commentRss>
		<slash:comments>373</slash:comments>
		</item>
		<item>
		<title>Truco para Windows/Linux</title>
		<link>http://chester.blog.br/archives/2002/03/procura-se-programador-para-jogo-de-truco.html</link>
		<comments>http://chester.blog.br/archives/2002/03/procura-se-programador-para-jogo-de-truco.html#comments</comments>
		<pubDate>Thu, 07 Mar 2002 17:15:00 +0000</pubDate>
		<dc:creator>chester</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://chester.blog.br/archives/2002/03/procura-se-programador-para-jogo-de-truco.html</guid>
		<description><![CDATA[Há alguns anos eu comecei a desenvolver um jogo de Truco para Windows. O projeto caminhou bastante, mas nunca tive tempo de acabar.
Como falta pouca coisa, resolvi disponbilizar o código-fonte para que algum programador Delphi ou Kylix que se interesse complete o jogo. Alguém se habilita?
]]></description>
			<content:encoded><![CDATA[<p><img src="http://chester.blog.br/img/blig/truco.gif" border="0" alt="" hspace="4" width="100" height="106" align="left" />Há alguns anos eu comecei a desenvolver um jogo de Truco para Windows. O projeto caminhou bastante, mas nunca tive tempo de acabar.</p>
<p>Como falta pouca coisa, resolvi <a href="http://chester.blog.br/download/Truco0.3Alpha.zip">disponbilizar</a> o código-fonte para que algum programador Delphi ou Kylix que se interesse complete o jogo. Alguém se habilita?</p>
]]></content:encoded>
			<wfw:commentRss>http://chester.blog.br/archives/2002/03/procura-se-programador-para-jogo-de-truco.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
