<?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>Meira da Rocha</title>
	<atom:link href="http://meiradarocha.jor.br/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://meiradarocha.jor.br/news</link>
	<description>Jornalismo Online, Planejamento Gráfico, Mídias Digitais</description>
	<lastBuildDate>Fri, 03 Feb 2012 14:57:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Como calibrar a tela do Wei Dream Android (Y803 MT6516)</title>
		<link>http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/</link>
		<comments>http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 18:07:38 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2590</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+calibrar+a+tela+do+Wei+Dream+Android+%28Y803+MT6516%29&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Android&amp;rft.source=Meira+da+Rocha&amp;rft.date=2012-02-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/&amp;rft.language=Portuguese"></span>
Você chegou aqui provavelmente porque fez uma massaroca com seu celular shanzhay (chanjai ou xing-ling) Wei Dream, ao rodar o programa Calibrator, e não consegue mais usá-lo. Ou tem dificuldades...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+calibrar+a+tela+do+Wei+Dream+Android+%28Y803+MT6516%29&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Android&amp;rft.source=Meira+da+Rocha&amp;rft.date=2012-02-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2590"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152601.png"><img class="alignright size-medium wp-image-2591" title="device-2012-02-02-152601" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152601-180x300.png" alt="" width="180" height="300" /></a>Você chegou aqui provavelmente porque fez uma massaroca com seu celular <a href="http://en.wikipedia.org/wiki/Shanzhai">shanzhay</a> (chanjai ou xing-ling) Wei Dream, ao rodar o programa Calibrator, e não consegue mais usá-lo. Ou tem dificuldades ao usar os quatro botões Android (Home, Menu, Voltar e Procurar) porque a tela está descalibrada.</p>
<p>No primeiro caso, o remédio pode ser chato, se você não conseguir chamar novamente o Calibrator. Você deve ler o artigo <a href="http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/">Como ressetar o Wei Dream</a>. Depois de ressetar, o sistema logo vai pedir para calibrar a tela.</p>
<p>A recalibragem deve ser feita assim:</p>
<p>1. Rode o Calibrator.</p>
<p>2. Toque na tela para começar a calibração, ou use o botão &#8220;Voltar&#8221; para sair do programa.</p>
<div id="attachment_2596" class="wp-caption alignnone" style="width: 168px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152331.png"><img class=" wp-image-2596" title="Toque a tela para iniciar" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152331-e1328205097519.png" alt="Toque a tela para iniciar" width="158" height="38" /></a><p class="wp-caption-text">Toque a tela para iniciar</p></div>
<p>3. Toque no primeiro ponto vermelho com um lápis macio.</p>
<div id="attachment_2597" class="wp-caption alignnone" style="width: 163px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152346-e1328205493961.png"><img class=" wp-image-2597" title="Ponto 1" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152346-e1328205493961.png" alt="Toque no ponto vermelho" width="153" height="153" /></a><p class="wp-caption-text">Toque no ponto vermelho</p></div>
<p>4. No segundo passo, não toque no ponto vermelho. Toque na margem verde do ponto, onde a seta vermelha está apontando, na ilustração abaixo.</p>
<div id="attachment_2592" class="wp-caption alignnone" style="width: 179px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152402.png"><img class="size-full wp-image-2592" title="Ponto 2" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152402-e1328205635777.png" alt="NÃO toque no ponto vermelho, toque acima" width="169" height="185" /></a><p class="wp-caption-text">NÃO toque no ponto vermelho, toque acima</p></div>
<p>5. Toque no terceiro ponto vermelho.</p>
<div id="attachment_2593" class="wp-caption alignnone" style="width: 160px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152416.png"><img class="size-full wp-image-2593" title="Ponto 3" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152416-e1328205725512.png" alt="Toque no ponto vermelho" width="150" height="157" /></a><p class="wp-caption-text">Toque no ponto vermelho</p></div>
<p>6. No quarto passo, não toque no ponto vermelho. Toque na margem verde do ponto.</p>
<div id="attachment_2594" class="wp-caption alignnone" style="width: 181px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152429-e1328204864750.png"><img class=" wp-image-2594" title="Ponto 4" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152429-e1328204864750.png" alt="NÃO toque no ponto vermelho, toque acima" width="171" height="168" /></a><p class="wp-caption-text">N</p></div>
<p>7. É isso! Use o botão &#8220;Voltar&#8221; para sair do Calibrator.</p>
<div id="attachment_2595" class="wp-caption alignnone" style="width: 181px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152446.png"><img class="size-full wp-image-2595" title="Calibragem completa" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/02/device-2012-02-02-152446-e1328205977463.png" alt="Calibragem completa" width="171" height="61" /></a><p class="wp-caption-text">Calibragem completa. Use &quot;Voltar&quot;</p></div>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2012/01/02/como-hifenizar-urls-e-outras-duvidas-em-libreoffice/" rel="bookmark" class="crp_title">Como hifenizar URLs e outras dúvidas em LibreOffice</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2009/01/23/abrindo-portas-ip-para-emule-e-skype-automaticamente/" rel="bookmark" class="crp_title">Abrindo portas IP para eMule e Skype automaticamente com UPnP</a></li><li><a href="http://meiradarocha.jor.br/news/2010/05/17/criar-publicacao-e-paginas-com-scribus/" rel="bookmark" class="crp_title">Como criar publicação e páginas com Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/" rel="bookmark" class="crp_title">Elementos da linguagem visual do Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2009/09/05/como-inserir-botoes-proxima-pagina-e-pagina-anterior-em-revistas-pdf/" rel="bookmark" class="crp_title">Como inserir botões &#8220;Próxima Página&#8221; e &#8220;Página anterior&#8221; em revistas PDF</a></li><li><a href="http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/" rel="bookmark" class="crp_title">Como converter imagens RGB para CMYK em GNU/Linux</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como hifenizar URLs e outras dúvidas em LibreOffice</title>
		<link>http://meiradarocha.jor.br/news/2012/01/02/como-hifenizar-urls-e-outras-duvidas-em-libreoffice/</link>
		<comments>http://meiradarocha.jor.br/news/2012/01/02/como-hifenizar-urls-e-outras-duvidas-em-libreoffice/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:30:03 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Editoração]]></category>
		<category><![CDATA[LibreOffice]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2551</guid>
		<description><![CDATA[Como evitar que os títulos fiquem sozinhos no final das páginas.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+hifenizar+URLs+e+outras+d%C3%BAvidas+em+LibreOffice&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Editora%C3%A7%C3%A3o&amp;rft.subject=LibreOffice&amp;rft.source=Meira+da+Rocha&amp;rft.date=2012-01-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2012/01/02/como-hifenizar-urls-e-outras-duvidas-em-libreoffice/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2551"><!-- &nbsp; --></abbr>
<div id="attachment_2554" class="wp-caption alignright" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2012/01/manter_com_o_proximo_paragrafo1.png"><img class="size-medium wp-image-2554" title="Como evitar títulos no fim da página" src="http://meiradarocha.jor.br/news/wp-content/uploads/2012/01/manter_com_o_proximo_paragrafo1-300x219.png" alt="Como evitar títulos no fim da página" width="300" height="219" /></a><p class="wp-caption-text">Como evitar títulos no fim da página</p></div>
<p>Em 2 de janeiro de 2012 02:31, Oto Ing &lt;oto&#8230;@gmail.com&gt; escreveu:</p>
<blockquote><p>Caro José Antonio,</p>
<p>Tudo bem?</p>
<p>Com o triste falecimento de André Gondim, fiquei sem ter a quem recorrer em momentos de dúvidas.</p></blockquote>
<p>Não me comparo ao Gondim, mas vou tentar ajudar&#8230;</p>
<blockquote><p>Minhas dúvidas são sobre formatação em OpenOffice. Gostaria de saber como faço para:<br />
1. notas de rodapé ficarem na mesma página (sem correr para a página seguinte)?</p></blockquote>
<p>Se o ponto de inserção da nota de rodapé estiver muito no fim da página ou se ela ficar muito grande, não haverá espaço e ela pulará para a página seguinte. É o costume. Acho que não há como evitar, a não ser que você corte texto em trechos acima para abrir espaço para a nota.</p>
<blockquote><p>2. como faço para a citação de sites da internet não alterar a configuração da formatação (ficar tudo juntinho como vemos em livros)?</p></blockquote>
<p>Acho que não há como hifenizar URLs automaticamente. O uso de hífen poderia confundir o leitor, que pensaria que o hífen faz parte do endereço. O que eu faço é o seguinte: coloco espaços em lugares que não possam ser confundidos como fazendo parte da URL e que deixem claro que o endereço continua na próxima linha. Depois de &#8220;/&#8221;, por exemplo. Ou depois de &#8220;?&#8221;, &#8220;&amp;&#8221;, &#8220;+&#8221;&#8230;</p>
<blockquote><p>3. como faço para não ficarem títulos de capítulos ou subcapítulos perdidos em finais de páginas?</p></blockquote>
<p>Sempre formate títulos com os estilos &#8220;Título 1&#8243;, &#8220;Título 2&#8243; etc, e nestes estilos, certifique-se que nas propriedades, aba &#8220;Fluxo de texto&#8221;, esteja marcado &#8220;Manter com o próximo parágrafo&#8221;. O uso deste estilos também facilita, mais tarde, a geração do sumário automático.</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2010/09/19/dicas-para-se-fazerem-jornais/" rel="bookmark" class="crp_title">28 dicas para se fazerem jornais</a></li><li><a href="http://meiradarocha.jor.br/news/2010/06/17/criando-estilos-no-scribus/" rel="bookmark" class="crp_title">Criando estilos no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/como-usar-folha-de-estilos/" rel="bookmark" class="crp_title">Como usar folha de estilos</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/24/sistema-editorial-usando-scribus-python-e-wordpress-parte-3/" rel="bookmark" class="crp_title">Sistema editorial usando Scribus, Python e WordPress &#8211; Parte 3</a></li><li><a href="http://meiradarocha.jor.br/news/2008/07/17/editoracao-quanto-menos-quadros-melhor/" rel="bookmark" class="crp_title">Editoração: quanto menos quadros, melhor</a></li><li><a href="http://meiradarocha.jor.br/news/2010/11/27/script-para-montar-materias-no-pagemaker/" rel="bookmark" class="crp_title">Script para montar matérias no PageMaker</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/disposicao-de-anuncio-e-materia-em-jornal/" rel="bookmark" class="crp_title">Disposição de anúncio e matéria em jornal</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2012/01/02/como-hifenizar-urls-e-outras-duvidas-em-libreoffice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quem é contra a Liberdade de Expressão</title>
		<link>http://meiradarocha.jor.br/news/2011/12/23/quem-e-contra-a-liberdade-de-expressao/</link>
		<comments>http://meiradarocha.jor.br/news/2011/12/23/quem-e-contra-a-liberdade-de-expressao/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 12:16:16 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Investigação]]></category>
		<category><![CDATA[Jornalismo]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2519</guid>
		<description><![CDATA[História do Jornalismo mostra quem é contra a liberdade de expressão]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Quem+%C3%A9+contra+a+Liberdade+de+Express%C3%A3o&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Investiga%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-23&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/23/quem-e-contra-a-liberdade-de-expressao/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2519"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Freedom-of-speech.jpg"><img class="alignright size-medium wp-image-2525" title="Liberdade de Expressão" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Freedom-of-speech-300x300.jpg" alt="http://www.theprisma.co.uk/wp-content/uploads/2011/02/Freedom-of-ENGLISH-6.jpg" width="300" height="300" /></a>No calor da campanha presidencial de Dilma, em 2010, o jornalista Alec Duarte, sub-editor de política do jornal Folha de São Paulo online, postou o seguinte comentário na lista de discussão sobre Jornalismo Online da Universidade do Texas:</p>
<blockquote><p>Caros, está em curso um absurdo: nesta quinta, o sindicato dos jornalistas do Estado de São Paulo abre seu auditório para um ato de partidos políticos, sindicatos e ONGs contra a imprensa. Você leu bem, é isso mesmo.</p>
<p>Tenho entendido que o evento joga uma pá de cal sobre o pouco de representatividade que essa entidade, à qual sou filiado, ainda exercia sobre a categoria. É o atestado de óbito do sindicato.</p>
<p>Há algo a fazer além de se indignar?</p>
<p>Mais informações aqui<br />
<a href="http://is.gd/flMrW">http://is.gd/flMrW</a></p></blockquote>
<p>É possível que tal matéria jornalística tenha sido redigida ou editada pelo próprio Alec, um jornalista chapa-vermelha &#8212; trabalha para a imprensa comercial.</p>
<p>Imediatamente eu reagi, na lista:</p>
<blockquote><p>Não é &#8220;contra a imprensa&#8221;. É contra as manipulações feitas por alguns órgãos, como tentar fazer escândalo com matérias tendo como única fonte um <a href="http://www.advivo.com.br/blog/luisnassif/folha-a-mentira-na-primeira-pagina">estelionatário ladrão de carga condenado por ameaçar de morte</a>, que queria a aprovação do BNDE para um projeto de 9 bilhões de reais (BI-lhões, não mi-lhões)&#8230; [o link eu coloquei agora]</p></blockquote>
<p>Leopoldo Godoy, outro jornalista chapa-vermelha, comentarista de tecnologia do programa <a title="Conta Corrente (Globo News)" href="http://pt.wikipedia.org/wiki/Conta_Corrente_%28Globo_News%29">Conta Corrente</a>, do canal de televisão a cabo <a title="Globo News" href="http://pt.wikipedia.org/wiki/Globo_News">Globo News</a>, referendou o ataque:</p>
<blockquote><p>Ou seja, é contra a imprensa.</p></blockquote>
<p>Lamentei:</p>
<blockquote><p>Se for esta sua definição de imprensa, então é&#8230;</p></blockquote>
<p>Marion Streck, chapa-vermelha da Folha de São Paulo, assinou embaixo do ataque:</p>
<blockquote><p>No auge de uma campanha eleitoral, o sindicato dos jornalistas abrigar manifestação contra órgãos de imprensa que investigam os possíveis podres da República, cheira realmente mal.</p></blockquote>
<p>Indignei-me:</p>
<blockquote><p>Desculpe-me, Marion, mas o que não dá pra sentir o cheiro aqui é de &#8220;investigação&#8221;.</p>
<p>Se tivessem investigado, não teriam dado página inteira e tratamento de &#8220;empresário&#8221; a um vigarista.</p>
<p>Se entra um sujeito na redação e diz que tem um projeto de 9 BILHÕES de reais, você tem duas opções:</p>
<ol>
<li>Encaminha-o ao dono do veículo e à editoria de Economia, porque é o Eike Batista, ou</li>
<li>Encaminha-o à porta da rua, porque é um picareta maluco desses que aparecem todo o dia em redações.</li>
</ol>
<p>NOVE BILHÕES!  BI! Metade do orçamento do MEC em 2003&#8230; dois meses de orçamento do MEC de 2011&#8230;</p>
<p>Falando em cheiro, cadê o faro jornalístico?</p>
<p>E este foi apenas UM dos incontáveis fatos que estão sujando a expressão &#8220;jornalismo investigativo&#8221;&#8230;</p></blockquote>
<p>Marion retrucou:</p>
<blockquote><p>Não é só de depoimento de santinhos que vive a imprensa nem mesmo a Justiça. Nem aqui nem em lugar nenhum.</p>
<p>Quer um exemplo no campo da justiça? Delação premiada. Só porque é condenado não pode abrir o bico contra outros criminosos?</p></blockquote>
<h3>Partidarismo</h3>
<p>Alec Duarte corre em auxílio da colega chapa-vermelha:</p>
<blockquote><p>Nosso amigo se esquece ainda de que CAIU uma ministra justamente por conta do conluio com bandidos. Mas, claro, a culpa é da imprensa.</p></blockquote>
<p>No que é acompanhado do Pedro Doria, mais outro chapa-vermelha do jornal Estado de São Paulo, revelando o partido que tomou:</p>
<blockquote><p>Vc pode ficar com o Nassif, o Azenha, o Rodrigo&#8230;</p>
<p>De minha parte, sigo com Ferreira Goulart, Helio Bicudo, José Arthur Gianotti&#8230;</p>
<p><a href="http://www.estadao.com.br/noticias/nacional,personalidades-lancam-manifesto-em-defesa-da-democracia,613242,0.htm" rel="nofollow">http://www.estadao.com.br/noticias/nacional,personalidades-lancam-manifesto-em-defesa-da-democracia,613242,0.htm</a></p>
<p>Imprensa serve para isso mesmo: incomodar governo. Fuçar, fuçar, fuçar. Publicar o que descobre. Incomodar o poder constituído, não importa quão popular. E governante reclama. É o jogo.</p>
<p>(Se a ministra era inocente, foi demitida por quê?)</p></blockquote>
<p>Dando a entender que os tubarões da mídia também jogam no poder, retruquei:</p>
<blockquote><p>&#8230; ou OS PODERES, já que não existe só uma fonte de poder&#8230;</p></blockquote>
<p>Doria concordou:</p>
<blockquote><p>Perfeitamente: <strong>incomodar os poderes</strong>. Todos eles.<br />
É o nosso papel.</p></blockquote>
<p>Walter Lima foi mais específico nas críticas:</p>
<blockquote><p>Desculpe a minha total ignorância. Mas a grande mídia jornalística é produzida por quem? Hummm &#8230;. jornalistas? Repórter, repórter-fotográfico, editor, repórter-cinematográfico etc pertencem à engrenagem fundamental da produção do conteúdo jornalístico. Hummm, se o Sindicato dos Jornalistas afirma que há &#8220;denúncias sem provas&#8221;, portanto, existe para a entidade o tal do jornalismo marrom (como se dizia antigamente). Mas produzido por quem? A lógica mostra que é por jornalistas.</p>
<p>Sabemos que não existem somente &#8220;Santos&#8221; nas redações, na academia e nos encontros de padres franciscanos, mas acredito que o sindicato com essa atitude coloca todos os jornalistas que trabalham na grande mídia dentro do mesmo saco. Conheço muita gente que trabalhou comigo em redação, alunos meus que agora estão no mercado (apesar de não colocar a mão no fogo por alguns) e colegas que convivo, além de acompanhar a trajetória de outros, e percebo que existe muita gente decente, dedicada e trabalhando em prol de um pais mais justo e igualitário sem ter o viés ideológico, partidário ou comercial (sim, isso é possível !!!).</p>
<p>Não deixar claro que a manifestação é contra os &#8220;donos&#8221; dos veículos e dar o &#8220;nome aos bois&#8221; fornece a percepção que todos (donos e jornalistas) estão com o mesmo objetivo: serem &#8220;golpistas&#8221; . Com esse ponto de vista, o sindicato está contra uma parte da classe que deveria defender (jornalistas que trabalham nas grandes redações = trabalhadores). Por outro lado, a manifestação, dos grupos organizados da sociedade civil mencionados no aviso do sindicato, é legitima em uma democracia e deve ser noticiada.</p>
<p>Aproveito para dizer que ainda é uma atraso os grupos de mídia brasileiros não se posicionarem através dos seus editoriais por um candidato A ou B. Todos nós sabemos que eles têm, sim, as suas preferências e explicitar para a sociedade é muito bom para a democracia.</p>
<p>walter<br />
(assino na figura de Jornalista, com MTB, carteira assinada e tudo mais que está sendo questionado na atual sociedade)</p></blockquote>
<p>Pedro Doria responde:</p>
<blockquote><p>Walter, todos &#8211;</p>
<p>A imprensa erra. Somos, todos, os primeiros a admiti-lo. Todos aqui, tenho certeza, já erramos profissionalmente.</p>
<p>Mas não é sobre erros que o protesto no Sindicato trata. Tampouco é sobre a suposta má fé de um ou de outro. Há um movimento em curso que diz que a grande imprensa faz parte do jogo político. Que opera feito um partido.</p>
<p>Eu estou envolvido, pessoalmente, na cobertura de eleições do Estado. O Alec, aqui, está pessoalmente envolvido na cobertura de eleições da Folha. Certamente há outros dentre nós. Mas não tomo apenas pessoalmente a afronta. Porque ser jornalista é, antes de tudo, um estado de espírito, não a redação na qual você trabalha. Seja num grande jornal, seja num blog, seja na sala de aula ou ralando em frilas, jornalista de verdade é tudo igual. Quando leio na Folha, ou na Veja, ou seja lá onde, uma baita manchete com dados, testemunhos, denúncias, minha reação instintiva é: putz, filha da mãe, eu queria ter dado essa. Tenho certeza de que, quando o furo é nosso, noutras redações a reação é a mesma. É isso que nos faz jornalistas.</p>
<p>Esta deveria ser a definição, aquilo que dita no mais íntimo, o que é fazer o que fazemos.</p>
<p>Se o governante diz uma coisa, você desconfia. No ato. Antes de piscar os olhos vc já duvida de que seja verdade. Este ceticismo não é apenas natural. É fundamental. Se você começa a encontrar parente que não acaba mais de ministro em tudo quanto é lugar dos negócios do Estado, caramba&#8230; quando, em que momento, as regras do jornalismo mudaram a ponto de que partimos do princípio de que isto é normal? Que isto pode ser, em qualquer circunstância, minimamente aceitável? Se um candidato cresce nas pesquisas, é sua obrigação profissional, obrigação perante seu leitor, perante a democracia, aumentar o escrutínio sobre este candidato. Sobre o que ele representa. Isso não é golpe. Aliás, é justamente o contrário de golpe. A liberdade de aumentar o escrutínio em qualquer um muito próximo do poder é a definição fundamental de democracia. E é preciso muito jogo retórico, muita demagogia, para inverter uma definição tão clara.</p>
<p>Que os governantes respondam dizendo &#8216;a imprensa está inventando&#8217; ou, pior, que se refiram a nós pelo famigerado &#8216;mídia&#8217;, ora pois, é do jogo.</p>
<p>Que jornalistas comprem este discurso não é. Que jornalistas incentivem este discurso, é pior. Que jornalistas pagos pelo governo direta ou indiretamente movam uma campanha com este argumento, é terrível. É uma ferida aberta em nossa profissão. Que o Sindicato que deveria compreender como redações funcionam, que deveria nos representar perante nossos patrões, abracem este processo não é apenas ruim, pior ou terrível. É um divisor de águas.</p>
<p>Deixa claro que não nos representa. Não é que não representem nós, jornalistas em grandes redações. Não. É sem aposto. Não representa a nós, jornalistas.</p>
<p>Mas, convenhamos: não somos nós que deixamos de fazer jornalismo. Nós continuamos seguindo os mesmos preceitos de ceticismo constante, de um desejo obstinado por entender como é constituído o poder e de revelá-lo a quem desejar a informação. Durante uma eleição, numa democracia, é só mais importante este papel. Com esta informação nas mãos, votamos todos.</p>
<p>Eu, pessoalmente, estou hiper mexido com este processo. É triste demais&#8230;</p></blockquote>
<p>Paralelamente, na lista de discussão fechada da Associação Brasileira de Jornalismo Investigativo (ABRAJI), devia estar rolando uma discussão parecida, porque Malu Gaspar, chapa-vermelha na revista Exame, manda um texto do repórter Rubens Valente, chapa-vermelha da Folha de São Paulo, postado naquela lista:</p>
<blockquote><p>Falta memória. Quando Millôr Fernandes dizia que imprensa é oposição, e o resto, armazém de secos e molhados, todo mundo achava o máximo. Hoje essa boutade virou um insulto. O escritor Autran Dourado, secretário de imprensa de JK, declara no recém-lançado &#8220;No Planalto, Com a Imprensa&#8221; (aliás, caríssimo, bancado pela Presidência) que a imprensa na época &#8220;agia como oposição&#8221; e qualificou de &#8220;hostil&#8221; a relação com os repórteres setoristas do Planalto. Isso há 50 anos.</p>
<p>Mais adiante quem não se lembra de Claudio Humberto e seu &#8220;bateu, levou&#8221;? Collor se dizia alvo de um golpe e chamou o povo às ruas para defender seu governo (qualquer semelhança entre o discurso difamatório de Lula sobre a imprensa e o &#8220;protesto&#8221; de quinta-feira é a história repetida em farsa. E as aspas no protesto vão pela insignificância do ato). Naquela época todo mundo achou que a imprensa cumpriu um papel glorioso _claro, o PT, derrotado nas urnas, havia criado um &#8220;Gabinete Paralelo&#8221; e queria de todo jeito &#8220;desgastar o governo&#8221;, como dizia abertamente na época. Golpe, conspiração? Imagina, era tudo parte do &#8220;jogo democrático&#8221; e da &#8220;luta política&#8221;. A imprensa era amiga, parceira nos planos partidários de &#8220;tomada do poder pela via democrática&#8221;. Repórteres ostentavam broches do partido. Quando a revista &#8220;Veja&#8221; dissecou as entranhas do esquema Collor, numa campanha avassaladora, também estava apenas &#8220;cumprindo seu papel democrático&#8221;. Ao lado da &#8220;IstoÉ&#8221; derrubou Collor, enquanto o PT explodia em alegria. Hoje é &#8220;criminosa&#8221;, &#8220;golpista&#8221;.</p>
<p>Depois a Folha (que fora invadida por fiscais da Receita e da PF) revelou a emenda da reeleição, que colocou o governo FHC em xeque e abalou as Bolsas. Mais adiante toda a imprensa derrubou um ou dois ministros com as fitas do BNDES e revelou a &#8220;bomba atômica&#8221; presidencial que precisou ser detonada no leilão das privatizações. Quem tiver curiosidade e boa-fé suficientes que pergunte a Fernando Henrique o que ele achou daquelas reportagens. Eu perguntei: até hoje sua contrariedade é evidente. Marcaram seu mandato e podem, sim, ter contribuído para o seu plano fracassado de eleger o sucessor.</p>
<p>Mas, nos estranhos dias que correm, quem se importa em reconstituir os fatos históricos com alguma isenção? É muito mais fácil separar o país entre &#8220;prós&#8221; e &#8220;contras&#8221; _muito embora não se saiba em relação a quê ou a quem_, num raciocínio torpe, infantil e precário.</p>
<p>Estavam os primeiros co-listeiros a falar não sobre mais ou menos críticas à imprensa, mas sobre o uso de um sindicato e de entidades atreladas ao governo e a um partido para constranger jornais e jornalistas no exato momento em que o governo é alvo de denúncias inúmeras e gravíssimas. É disso que se tratava. Vemos uma clara campanha de &#8220;criminalização&#8221; de jornais e jornalistas. Um blog exibiu a foto de uma jornalista coberta por uma tarja preta, com a legenda: &#8220;O jornal Tal é caso de polícia&#8221;. Outro escreveu que o local em que eu trabalho é uma &#8221;lixeira&#8221;. Eu jamais diria isso de alguma empresa, ainda que fosse um blog pago com dinheiro público para espalhar o ódio, o preconceito e a desinformação, como é o caso. São movimentos ilegais de constrangimento. Por que ilegais? Porque abrem espaço para o anonimato, que é vedado pela Constituição.<br />
Esses auto-instalados &#8220;críticos de mídia&#8221; _uma profissão crescentemente rentável_ pretendem &#8220;explicar&#8221; à &#8220;turba ignorante&#8221; que a profissão a que me dedico há 21 anos é negativa, desonrosa, criminosa. Sendo &#8220;velha&#8221;, precisa ser imediatamente substituída, extirpada, encerrada. Jogam, assim, impunemente contra os empregos de milhares de famílias.</p>
<p>Todo jornalista que conheço é aberto à crítica, mas atualmente são poucas as críticas com algum talento, sobre a qual podemos debater. O que existe é um movimento coordenado para tentar a desqualificação do próprio fazer jornalístico. Nos tomam por trouxas, que se acovardam com qualquer patifaria. Certamente não sabem, por absoluto amadorismo, com quantos contratempos se forma o caráter de um jornalista.</p>
<p>Rubens Valente, repórter</p></blockquote>
<p>Alec Duarte cita este texto e assina embaixo dos comentários de Pedro Doria:</p>
<blockquote><p>Depois deste belíssimo texto do Pedro Doria, o qual peço permissão para coassinar, deixo com vcs brilhante reflexão do repórter Rubens Valente, também meu colega.</p>
<p>Agora, aguardo a assinatura do atestado de óbito do sindicato dos jornalistas de SP, nesta quinta-feira.</p></blockquote>
<h3>Epílogo</h3>
<p>Alguns meses depois deste <em>mambo-jambo Jedi</em> sobre Jornalismo, sob o qual eu também assinaria, o que aconteceu?</p>
<ul>
<li>O jornalista Alec Duarte posta em seu twitter uma crítica inocente sobre critérios jornalísticos internos da Folha de São Paulo, <a href="http://idgnow.uol.com.br/internet/2011/04/04/jornalistas-do-grupo-folha-sao-demitidos-apos-comentarios-no-twitter/"><strong>incomoda os poderosos patrões</strong> e é <strong>demitido</strong></a>, junto com uma colega. Lamentável.</li>
<li>O vigarista que eu citei no início do texto, única fonte da Folha de São Paulo, tratado pelo jornal como &#8220;empresário&#8221;, tem que pedir <a href="http://www.pt.org.br/index.php?/noticias/view/justica_empresario_se_retrata_por_acusacoes_feitas_na_imprensa_contra_o_pt">desculpas ao PT por ter mentido</a>, depois de perder ação na Justiça&#8230;</li>
<li>O jornalista investigativo Amaury Ribeiro Jr. publica o livro “A Privataria Tucana”, incomoda a poderosa imprensa envolvida com as privatizações e ela cai num <strong>constrangedor silêncio</strong>.</li>
<li>Quando se manifesta, a imprensa comercial <strong><em>condena Amaury Jr. antes da Justiça</em></strong> por ter sido <em>apenas indiciado</em> numa suposta armação serrista. Um vigarista é mais considerado que um colega de profissão Prêmio Esso.</li>
</ul>
<p>Então, <strong>quem é contra a liberdade de imprensa?</strong> O Sindicato dos Jornalistas de São Paulo ou os patrões do Alec Duarte? Quando os <strong>poderosos</strong> são os patrões, o papo de liberdade de imprensa não conta mais?</p>
<p>Por estas e por outras são necessários tanto o <strong>Conselho Federal de Jornalistas</strong>, como outras <a href="https://docs.google.com/document/d/1evu2n7EQQpwaFcWJhhehiaRdYEjft2UX1GWCHj_JF2s/edit">24 profissões regulamentadas</a> têm os seus, quanto a <strong>regulação da Comunicação,</strong> como manda a Constituição.</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2008/06/17/jornalismo-e-uma-coisa-imprensa-e-outra/" rel="bookmark" class="crp_title">Jornalismo é uma coisa. Imprensa é outra coisa.</a></li><li><a href="http://meiradarocha.jor.br/news/2007/09/27/ranking-da-corrupcao-mal-feito/" rel="bookmark" class="crp_title">Ranking da corrupção: furada da imprensa</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/siga-o-dinheiro-2/" rel="bookmark" class="crp_title">Siga o dinheiro</a></li><li><a href="http://meiradarocha.jor.br/news/2010/10/22/a-grande-armacao-pro-serra-do-jornal-nacional/" rel="bookmark" class="crp_title">A grande armação pró-Serra do Jornal Nacional</a></li><li><a href="http://meiradarocha.jor.br/news/2008/08/15/manual-do-foca-guia-de-sobrevivencia-para-jornalistas/" rel="bookmark" class="crp_title">Manual do foca, guia de sobrevivência para jornalistas</a></li><li><a href="http://meiradarocha.jor.br/news/2008/06/13/papel-jornal-nao-paga-imposto-e-sites-web-por-que-pagam/" rel="bookmark" class="crp_title">Papel jornal não paga imposto. E sites web, por que pagam?</a></li><li><a href="http://meiradarocha.jor.br/news/2008/05/23/polibio-braga-ataca-unisinos-com-odi/" rel="bookmark" class="crp_title">Políbio Adolfo Braga ataca Unisinos com ódio</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/12/23/quem-e-contra-a-liberdade-de-expressao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como ressetar o Wei Dream Android (Y803 MT6516)</title>
		<link>http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/</link>
		<comments>http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 02:27:15 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2424</guid>
		<description><![CDATA[Reverta o Wei Dream para as configurações de fábrica.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+ressetar+o+Wei+Dream+Android+%28Y803+MT6516%29&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Android&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-18&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2424"><!-- &nbsp; --></abbr>
<div id="attachment_2490" class="wp-caption alignright" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Wei-dream-Android-e1321400936371.jpg"><img class="size-medium wp-image-2490" title="Segure o botão 2 e ligue o celular no botão 1" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Wei-dream-Android-e1321400936371-300x279.jpg" alt="Segure o botão 2 e ligue o celular no botão 1" width="300" height="279" /></a><p class="wp-caption-text">Segure o botão 2 e ligue o celular no botão 1</p></div>
<p>O celular Wei Dream tem bom custo/benefício, mas vem com um folheto sumário, em vez de manual. Assim, quem não conhece Android fica sem saber de importantes informações. Aqui, eu mostro como reverter o Wei Dream para a configuração de fábrica.</p>
<ol>
<li>Faça <a href="http://forum.xda-developers.com/wiki/index.php?title=Chinese_Clones_MTK6516#Backup.2C_Generate_.26_Restore_IMEI">backup do arquivo de IMEI</a> (nº de série do aparelho).</li>
<li>Desligue o celular.</li>
<li>Segure a tecla de &#8220;Aumentar volume&#8221; e segure a tecla “Ligar” por alguns segundos.</li>
<li>Surgirá uma tela com um triângulo com uma exclamação amarela e o robozinho. Solte os botões.</li>
<li>Aperte o botão de ligar novamente. Surgirá um menu.</li>
<li>Aperte o botão “Diminuir Volume” para se mover pelos menus. Use somente este botão para movimentar o cursor dos menus. <strong>Não aperte o botão de Aumentar o Volume para se movimentar no menu</strong>. Ele funciona como “Enter” ou “OK”. Não existe botão para subir no menu. Se chegar ao final do menu, “wipe cache”, aperte “Aumentar volume” para limpar o cache e voltar ao início.</li>
<li>Mova o cursor até “wipe data/factory recover”.</li>
<li>Aperte o botão de “Aumentar o volume”. Surgirá um menu com muitos “No” e um “yes”.</li>
<li>Mova o cursor do menu até “yes” e aperte o botão de “Aumentar Volume”.</li>
<li>Espere até o sistema ser reinstalado como de fábrica.</li>
</ol>
<p>Os programas instalados são perdidos, mas não os arquivos ou pastas pessoais no cartão SD.</p>
<p>Na primeira vez que se entra no sistema, será solicitado que se faça a calibragem da tela tocando em quatro pontos. Quando toquei exatamente nos pontos, as teclas de baixo ficam de difícil acesso. Então, consegui recalibrar com um lápis tocando levemente acima dos pontos de baixo.</p>
<h3>Como recuperar números IMEI</h3>
<p>Mas cuidado: ressetar para as configurações de fábrica pode apagar o número de série IMEI de sistemas Android. Confira <a href="http://forum.xda-developers.com/wiki/index.php?title=Chinese_Clones_MTK6516#Backup.2C_Generate_.26_Restore_IMEI">como fazer backup dos arquivos de IMEI</a>.</p>
<p>Se acontecer isto, você deve gerar novamente os IMEI (estão gravados dentro do aparelho, abaixo da bateria, na forma 35182904XXXXXXN, onde X são os algarismos de série de cada <em>slot SIM card</em> e N é o dígito de controle.</p>
<p>Para isto, gere novo arquivo de IMEI  com o <a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/imei-mt6516-y803.7z">Gerador de IMEI para celulares baseados no MT6516</a> (versões para Linux ou Windows):</p>
<pre>imei-y803.exe &lt;imei_1_15_digitos&gt; &lt;imei_2_15_digitos&gt;</pre>
<p>Os números IMEI do celular estão impressos dentro do aparelho, abaixo da bateria.</p>
<p>Copie o arquivo gerado para o diretório raíz do cartão SD. Depois, <a href="http://www.eusouandroid.com/2011/08/download-adb-shell-android-tools.html">entre no console do Linux Android</a> e use os comandos:</p>
<pre>su
cp /sdcard/MP0B_001_NEW /data/nvram/md/NVRAM/NVD_IMEI/MP0B_001
chmod 650 /data/nvram/md/NVRAM/NVD_IMEI/MP0B_001</pre>
<p>O aparelho deve estar <em>rooted</em> e ter o busybox instalado. O programa Superuser e o busybox estão no Android Market. Ao digitar o comando SU (superuser, igual a administrador no Windows), o celular vai solicitar permissão. Conceda permissão, ou o comando SU vai falhar e aparecerá &#8220;Permission denied&#8221; no terminal.</p>
<p>Este gerador de IMEI é uma versão hackeada por mim baseada num gerador postado pelos usuários  f_mulder e pvsurkov do site russo <a href="http://forum.china-iphone.ru">forum.china-iphone.ru</a>.</p>
<p>Como eu não podia compilar o programa em linguagem C, fiz a troca  do byte 0&#215;57 por 0&#215;55 e do byte 0xDB por 0x8B diretamente nos executáveis. Estes bytes estão próximos, antes de bytes 0x8B. Esta troca é necessária para compatibilidade com o IMEI original do Y803 (Wei Dream). No código fonte, comentei a maneira que o IMEI é calculado.</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/" rel="bookmark" class="crp_title">Como usar o celular Wei Dream como modem</a></li><li><a href="http://meiradarocha.jor.br/news/2009/09/05/como-inserir-botoes-proxima-pagina-e-pagina-anterior-em-revistas-pdf/" rel="bookmark" class="crp_title">Como inserir botões &#8220;Próxima Página&#8221; e &#8220;Página anterior&#8221; em revistas PDF</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/27/grave-tutoriais-em-flash-video-com-wink/" rel="bookmark" class="crp_title">Grave tutoriais em Flash Video com Wink</a></li><li><a href="http://meiradarocha.jor.br/news/2007/08/11/controle-remoto-infra-vermelho-para-windows/" rel="bookmark" class="crp_title">Controle remoto infra vermelho para Windows</a></li><li><a href="http://meiradarocha.jor.br/news/2007/10/25/tv-a-cabo-net-digital-atualiza-interface/" rel="bookmark" class="crp_title">TV a cabo: Net Digital atualiza interface</a></li><li><a href="http://meiradarocha.jor.br/news/2011/01/05/como-instalar-interface-grafica-ttk-no-python-do-scribus/" rel="bookmark" class="crp_title">Como instalar interface gráfica ttk no Python do Scribus</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/feed/</wfw:commentRss>
		<slash:comments>89</slash:comments>
		</item>
		<item>
		<title>Como usar o celular Wei Dream como modem</title>
		<link>http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/</link>
		<comments>http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 17:15:41 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2457</guid>
		<description><![CDATA[Ligue um laptop ao celular Android e tenha acesso internet através da rede telefônica móvel ou de pontos de acesso Wi-fi]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+usar+o+celular+Wei+Dream+como+modem&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Android&amp;rft.subject=Linux&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-18&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2457"><!-- &nbsp; --></abbr>
<div id="attachment_2466" class="wp-caption alignright" style="width: 250px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Wei-Dream-tethering-2011-12-18-143000.png"><img class="size-full wp-image-2466" title="Wei Dream tethering: celular como modem" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Wei-Dream-tethering-2011-12-18-143000.png" alt="Wei Dream tethering: celular como modem" width="240" height="161" /></a><p class="wp-caption-text">Wei Dream tethering: celular como modem</p></div>
<p>É possível ligar-se um laptop ao celular Android e ter-se acesso internet através da rede telefônica móvel ou de pontos de acesso Wi-Fi como se o celular fosse um modem. Isto chama-se <em><a href="http://pt.wikipedia.org/wiki/Tethering">tethering</a></em>, um recurso que faz parte do <a href="http://www.linux-usb.org/usbnet/">sistema GNU/Linux usbnet</a>.</p>
<p>No Android 2.2 &#8220;Froyo&#8221;, a configuração é bem simples. No celular Wei Dream fiz assim:</p>
<ol>
<li>Liguei o cabo USB.</li>
<li>Não liguei o armazenamento USB, quando solicitado.</li>
<li>Acessei &#8220;Configurações &gt; Redes sem fio e outras &gt; Vínculo&#8221; e liguei &#8220;Vínculo USB&#8221;.</li>
</ol>
<p>É só! O meu Ubuntu Linux reconheceu o acesso imediatamente como uma conexão USB e apareceu o ícone USB azul na barra de avisos do celular. <strong>GNU/Linux <em>rox!</em></strong></p>
<p>Para a conexão, o Android usa o Wi-Fi se ele estiver ligado. Caso contrário, usa o EDGE da rede telefônica móvel (cuidado se estiver em <em>roaming</em> e seu plano for por minuto).</p>
<h3>Windows</h3>
<p>Já com o Windows XP a situação é diferente. No mesmo menu &#8220;Configurações &gt; Redes sem fio e outras&#8221;, opção &#8220;Ajuda&#8221;, o <a href="http://www.android.com/tether#usb">site Android explica</a> que a conexão funciona direto no Windows Vista, 7 e Linux, mas com o Windows XP é necessário um ajuste. O sistema XP tem todos os <em>drivers</em> necessários para fazer a conexão mas não tem um arquivo de configuração &#8220;.inf&#8221; para instalar o dispositivo. O site oferece um <em>link</em> para download deste arquivo: <a href="http://www.android.com/drivers/tetherxp.inf">tetherxp.inf</a>.</p>
<p>Baixei, liguei o celular por USB, executei os passos de instalação do <em>driver</em> mas o Windows XP não reconheceu as configurações do arquivo &#8220;.inf&#8221;.</p>
<p>Abri o arquivo <strong>tetherxp.inf</strong> para analisar o problema. Descobri o seguinte trecho:</p>
<pre>[AndroidDevices]
; Google Nexus One without adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&amp;PID_4E13
; Google Nexus One with adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&amp;PID_4E14
; Google Nexus S without adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&amp;PID_4E23
; Google Nexus S with adb
%AndroidDevice%    = RNDIS, USB\VID_18D1&amp;PID_4E24
; HTC Sapphire without adb
%AndroidDevice%    = RNDIS, USB\VID_0BB4&amp;PID_0FFE
; HTC Sapphire with adb
%AndroidDevice%    = RNDIS, USB\VID_0BB4&amp;PID_0FFC
; Motorola Sholes without adb
%AndroidDevice%    = RNDIS, USB\VID_22B8&amp;PID_41E4
; Motorola Sholes with adb
%AndroidDevice%    = RNDIS, USB\VID_22B8&amp;PID_41E5

[AndroidDevices.NT.5.1]
; Google Nexus One without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&amp;PID_4E13
; Google Nexus One with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&amp;PID_4E14
; Google Nexus S without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&amp;PID_4E23
; Google Nexus S with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_18D1&amp;PID_4E24
; HTC Sapphire without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_0BB4&amp;PID_0FFE
; HTC Sapphire with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_0BB4&amp;PID_0FFC
; Motorola Sholes without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_22B8&amp;PID_41E4
; Motorola Sholes with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_22B8&amp;PID_41E5</pre>
<p>Parece que o suporte a <strong>USB <em>tethering</em></strong> desta configuração contempla apenas os celulares Google Nexus One, Google Nexus S, HTC Sapphire e Motorola Sholes.</p>
<p>Tentei o seguinte truque: adicionei às configurações o VID (vendor ID) e PID (product ID) do WeiDream (<em>chip</em> MediaTek, interface USB identificada como da High Tech Computer Corp., pelo Linux).</p>
<p>Para descobrir o VID e o PID, liguei o <em>tethering</em> e usei o comando &#8220;lsusb&#8221; do Linux. O resultado foi:</p>
<pre>Bus 001 Device 006: ID <strong>0bb4:0003</strong> High Tech Computer Corp.</pre>
<p>Com apenas a conexão USB ligada, o resultado foi:</p>
<pre>Bus 001 Device 005: ID <strong>0bb4:0001</strong> High Tech Computer Corp.</pre>
<p>Com a depuração USB ligada (adb), o resultado foi:</p>
<pre>Bus 001 Device 008: ID <strong>0bb4:0c03</strong> High Tech Computer Corp.</pre>
<p>Reparei que cada modo tem um PID diferente. Por isto o armazenamento USB não fica disponível com <em>tethering</em> ou depuração ligados.</p>
<p>Então, na seção [AndroidDevices] do tetherxp.inf, adicionei:</p>
<pre>; Wei Dream without adb
%AndroidDevice%    = RNDIS, USB\VID_<strong>0bb4</strong>&amp;PID_<strong>0003</strong>
; Wei Dream with adb
%AndroidDevice%    = RNDIS, USB\VID_<strong>0bb4</strong>&amp;PID_<strong>0c03</strong></pre>
<p>E na seção [AndroidDevices.NT.5.1]:</p>
<pre>; Wei Dream without adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_<strong>0bb4</strong>&amp;PID_<strong>0003</strong>
; Wei Dream with adb
%AndroidDevice%    = RNDIS.NT.5.1, USB\VID_<strong>0bb4</strong>&amp;PID_<strong>0c03</strong></pre>
<p>Religuei o celular ao Windows XP, fiz os passos de instalação de <em>drivers</em> e <em><strong>bingo!</strong></em> O dispositivo foi reconhecido e funciona corretamente. O Windows instala uma conexão local e a usa para conectar-se à internet. Talvez este meu &#8220;.inf&#8221; modificado seja o mítico <em>driver</em> <strong>MediaTek MT65xx MS</strong> que muita gente pede pela internet.</p>
<p>Baixe aqui o <a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/tetherxp_wei_dream.inf_.7z">Driver MediaTek MT65xx MS for Windows </a><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/tetherxp_wei_dream.inf_.7z">(for Wei Dream USB tethering) </a>, zipado com <a href="http://www.7-zip.org/">7zip</a>.</p>
<p>Mas notei o seguinte: se desligo o <em>tethering</em> no celular, o Windows desativa a conexão e não religa mais. É necessário o usuário se deslogar e se logar novamente (não é necessário de dar novo boot). No entanto, se eu desativo a conexão pelo Windows <strong>antes</strong>, ela pode ser religada novamente.</p>
<div id="attachment_2480" class="wp-caption alignright" style="width: 250px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/smsung5-tethering.png"><img class="size-medium wp-image-2480" title="Roteamento Wi-Fi do Samsung 5. Este recurso não existe no Wei Dream." src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/smsung5-tethering-240x300.png" alt="Roteamento Wi-Fi do Samsung 5. Este recurso não existe no Wei Dream." width="240" height="300" /></a><p class="wp-caption-text">Roteamento Wi-Fi do Samsung 5. Este recurso não existe no Wei Dream.</p></div>
<p>Com o <em>tethering</em>, descobri que a minha conexão Oi Conta Total Light+internet (5 reais por mês para franquia de 100 MB, com diminuição de velocidade se ultrapassar o limite), com <a href="http://pt.wikipedia.org/wiki/EDGE">tecnologia EDGE</a>, consegui velocidades de download de 125 Kbps e de upload de 25 Kbps. Com a conexão Wi-Fi e internet ADSL de 2 Mbps da Oi, a velocidade de download foi de 1600 Kbps, contra 1800 Kbps da conexão por cabo Ethernet.</p>
<h3>Roteador Wi-Fi</h3>
<p>Infelizmente, o Wei Dream não permite se usar o celular como ponto de acesso sem fio para até oito computadores, recurso presente em celulares mais caros como o Samsung 5, por exemplo. Talvez o recurso tenha sido desabilitado por falta de potência do modem EDGE ou do <em>chip</em> MT6516 da MediaTek.</p>
<h3>Configuração do chip</h3>
<p>Para configurar a internet por EDGE (Enhanced GPRS), visite a página:</p>
<ul>
<li><a href="http://www.euandroid.com.br/tutoriais/2011/01/configurando-apn-no-android/">Configurando APN no Android</a></li>
</ul>
<p>Ou tente o aplicativo APN Brasil, no Market, que configura automaticamente, mas não sei se trabalha com dois chips.</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2009/01/23/abrindo-portas-ip-para-emule-e-skype-automaticamente/" rel="bookmark" class="crp_title">Abrindo portas IP para eMule e Skype automaticamente com UPnP</a></li><li><a href="http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/" rel="bookmark" class="crp_title">Como ressetar o Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/" rel="bookmark" class="crp_title">Como configurar servidor xrdp no Ubuntu</a></li><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2010/10/20/como-configurar-rede-ieee1394-firewire-no-ubuntu-10-10/" rel="bookmark" class="crp_title">Como configurar rede IEEE1394 (FireWire) no Ubuntu 10.10</a></li><li><a href="http://meiradarocha.jor.br/news/2008/05/24/instalar-wireless-num-acer-4520-com-ubuntu-804-64-bits/" rel="bookmark" class="crp_title">Instalar wireless num Acer 4520 com Ubuntu 8.04 64 bits</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Como ler e converter livros com DRM no Calibre</title>
		<link>http://meiradarocha.jor.br/news/2011/12/17/como-ler-e-converter-livros-com-drm-no-calibre/</link>
		<comments>http://meiradarocha.jor.br/news/2011/12/17/como-ler-e-converter-livros-com-drm-no-calibre/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 22:43:19 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Livros]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2450</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+ler+e+converter+livros+com+DRM+no+Calibre&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.subject=Livros&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/17/como-ler-e-converter-livros-com-drm-no-calibre/&amp;rft.language=Portuguese"></span>
Por evil_queen Há alguns meses eu reclamei aqui http://www.portaldetonando.com.br/forum/frete-de-e-books-so-no-brasil-t17349.html da dificuldade de lidar com ebooks comprados em livrarias brasileiras, por conta do DRM que esses arquivos possuem. Ontem, passeando pela...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+ler+e+converter+livros+com+DRM+no+Calibre&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.subject=Livros&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/17/como-ler-e-converter-livros-com-drm-no-calibre/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2450"><!-- &nbsp; --></abbr>
<p><span style="font-size: xx-small;"><em><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Calibre-E-book-management.jpg"><img class="alignright size-medium wp-image-2453" title="Calibre - E-book management" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Calibre-E-book-management-300x176.jpg" alt="" width="300" height="176" /></a>Por <strong><a href="http://www.portaldetonando.com.br/forum/member40453.html">evil_queen</a></strong></em></span></p>
<p>Há alguns meses eu reclamei aqui <a href="http://www.portaldetonando.com.br/forum/frete-de-e-books-so-no-brasil-t17349.html">http://www.portaldetonando.com.br/forum/frete-de-e-books-so-no-brasil-t17349.html</a> da dificuldade de lidar com ebooks comprados em livrarias brasileiras, por conta do <strong>DRM</strong> que esses arquivos possuem. Ontem, passeando pela internet, tive a felicidade de esbarrar nesse blog: <a href="http://apprenticealf.wordpress.com/" rel="nofollow">http://apprenticealf.wordpress.com/</a>, que ensina um truque super simples para que o <strong>Calibre</strong> aceite esses livros.</p>
<p>Não sei se os membros do fórum tem o hábito de comprar <em>ebooks</em>, mas pelos comentários aqui postados, percebo que tem aumentado a quantidade de pessoas que está comprando eReaders de várias marcas, e podem acabar esbarrando nas mesmas dificuldades de compatibilidade que eu tive.</p>
<p>Como o <strong>Calibre</strong> é compatível com praticamente qualquer <em>reader</em> disponível no mercado atualmente, mas não aceita livros com <strong>DRM</strong>, resolvi postar aqui uma traduçãozinha rápida do tutorial que ensina a tornar o <strong>Calibre</strong> compatível com <strong>DRM</strong> (e inclusive permite removê-lo).</p>
<p>Assim, quem tem um <em>reader</em> pode dispensar outros programas para converter e passar seus livros para o leitor sem dor de cabeça, e quem não tem <em>reader</em> pode ter cópias sem proteção dos livros que comprou, para transportá-los e lê-los no programa/dispositivo que achar mais apropriado, inclusive celulares e <em>palms</em>, que não comportam o Adobe Digital Editions.</p>
<ol>
<li>Se você ainda não usa o <strong>Calibre</strong> é necessário instalar o programa. Ele pode ser encontrado aqui: <a href="http://www.baixaki.com.br/download/calibre.htm" rel="nofollow">http://www.baixaki.com.br/download/<strong>calibre</strong>.htm</a></li>
<li>Baixe esse pacote de ferramentas aqui: <a href="http://www.datafilehost.com/download-4a2f247e.html">http://www.datafilehost.com/download-4a2f247e.html</a> e descompacte.</li>
<li>Abra o <strong>Calibre</strong>. Clique em &#8220;Preferências -&gt; Clique em Plug-ins&#8221;.</li>
<li>Clique em “Add a new plugin” lá embaixo (um botão comprido).</li>
<li>Na caixa que abrir, navegue até o local onde está a pastinha que foi baixada no passo 2.</li>
<li>Procure a pasta Calibre_Plugins e abra. (existem outros arquivos nessa pasta zip que foi baixada, que não serão usados aqui).</li>
<li>Selecione um dos arquivos zip que estão naquela pasta (eles terão que ser adicionados um a um).</li>
<li>Clique em Adicionar (Add).</li>
<li>Clique no botão “Sim” na caixa de aviso que vai aparecer. Ela avisa toda vez que um plugin for instalado. Se tudo der certo, ele avisa que a instalação foi<br />
bem sucedida.</li>
<li>Repita os passos 4 a 9 para cada arquivo zip que está na pasta Calibre_Plugins (são 5 arquivos).</li>
<li>Cada plugin necessita de configuração, e esta depende do tipo de ebook que você tem. Se você tem ebooks em epub com o <strong>DRM</strong> que pode ser lido no Adobe Digital Editions (ebooks vendidos na Saraiva e Livraria Cultura), você não precisa fazer mais nada. (Não tenho nenhum PDF com essa proteção, mas acredito que também não necessita de configurações especiais) Se você tem ebooks Amazon Kindle que foram baixados de uma cópia do Kindle para Mac ou Kindle para PC que está instalado no seu computador, você também não precisa fazer mais nada. Outros formatos precisam de configuração.</li>
<li>Como configurar os plugins:<br />
Os plugins estão localizados em Preferências -&gt; Plugins -&gt; tipo de arquivos extensões (File type plugins). Clique em um plugin da lista e clique em Configurar Plugin (lá embaixo).</p>
<ol type="a">
<li>Se voce tem ebooks Mobipocket onde voce precisou digitar um PID no site do vendedor (livraria), ou se voce precisa lê-lo no Mobipocket Reader, então voce precisa colocar o PID que você usou no site para comprá-lo, ou o PID de instalação do Mobipocket Reader num campo específico do plugin K4MobiDeDRM. Esse PID tem 10 números e letras, com * ou $ como o oitavo caractere. Se voce tem mais de um PID, coloque-os separados por vírgulas.</li>
<li>Se você tem ebook para Amazon Kindle que foram baixados diretamente para o Kindle, você precisa colocar o serial number do Kindle num campo específico do plugin K4MobiDeDRM. Se você já tem um PID lá, adicione o serial do Kindle também, separado por vírgula.</li>
<li>Se você tem ebook em ePub da Barnes and Noble (por ex. do Nook), você precisa entrar com o nome e o número do seu cartão de crédito num campo específico do plugin Ignoble Epub DeDRM. O nome e número de cartão de crédito devem ser aqueles usados para conseguir o (código de desbloqueio) Credit Card unlock code na sua página do Nook Library. Separe o nome do número com uma virgula e não coloque nenhum espaço entre os números do cartão ou antes/depois da vírgula.</li>
<li>Se você tem ebook em formato eReader da Barnes and Noble, ou de, por exemplo, Fictionwise, você tem que entrar com o seu nome e os últimos 8 digitos do seu cartão de crédito num campo específico do plugin eReader PDB 2. Novamente, o nome e o número do cartão devem se aqueles usados no site da livraria para conseguir o <strong>DRM</strong> key/Unlock code.</li>
<li>Se você tem ebooks comprados na Apple iBooks store ou ebooks Microsoft LIT, ainda não é possível remover o <strong>DRM</strong>.</li>
</ol>
</li>
<li>Depois dessas modificações, é só clicar em aplicar” (Apply), e fechar as preferências.</li>
<li>Agora é só importar os livros protegidos por <strong>DRM</strong> para o <strong>Calibre</strong> e ele será capaz de convertê-los para outros formatos (salvos na biblioteca do <strong>calibre</strong>) e passá-lo para o seu <em>reader</em> sem problemas. Se o livro já está na sua biblioteca, será necessário re-adicionar, pois as modificações ocorrem no momento em que o <strong>calibre</strong> importa o livro para a biblioteca.</li>
</ol>
<p>É isso.</p>
<p>Adobe Digital Editions, Kindle para PC e Sony Reader Library, nunca mais! \o/</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2010/09/03/estilo-abnt-para-o-zotero/" rel="bookmark" class="crp_title">Estilo ABNT para o Zotero</a></li><li><a href="http://meiradarocha.jor.br/news/2007/07/16/como-assistir-tv-a-cabo-de-graca/" rel="bookmark" class="crp_title">Como assistir a TV a cabo de graça</a></li><li><a href="http://meiradarocha.jor.br/news/2009/01/23/abrindo-portas-ip-para-emule-e-skype-automaticamente/" rel="bookmark" class="crp_title">Abrindo portas IP para eMule e Skype automaticamente com UPnP</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/27/grave-tutoriais-em-flash-video-com-wink/" rel="bookmark" class="crp_title">Grave tutoriais em Flash Video com Wink</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/27/crie-tutoriais-em-video-no-linux/" rel="bookmark" class="crp_title">Crie tutoriais em vídeo no Linux</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/20/como-instalar-pyqt-4-4-no-scribus-windows/" rel="bookmark" class="crp_title">Como instalar PyQt 4.4 no Scribus Windows</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/como-usar-folha-de-estilos/" rel="bookmark" class="crp_title">Como usar folha de estilos</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/12/17/como-ler-e-converter-livros-com-drm-no-calibre/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Coleção de Fontes Google para publicações impressas</title>
		<link>http://meiradarocha.jor.br/news/2011/12/13/colecao-de-fontes-google-para-publicacoes-impressas/</link>
		<comments>http://meiradarocha.jor.br/news/2011/12/13/colecao-de-fontes-google-para-publicacoes-impressas/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 21:47:04 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Editoração]]></category>
		<category><![CDATA[Fontes]]></category>
		<category><![CDATA[Jornalismo]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2440</guid>
		<description><![CDATA[Editor escolhe fontes específicas para jornais e revistas.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Cole%C3%A7%C3%A3o+de+Fontes+Google+para+publica%C3%A7%C3%B5es+impressas&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Editora%C3%A7%C3%A3o&amp;rft.subject=Fontes&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-12-13&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/12/13/colecao-de-fontes-google-para-publicacoes-impressas/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2440"><!-- &nbsp; --></abbr>
<p><a href="http://www.google.com/webfonts#ChoosePlace:select/Collection:Cabin+Condensed:400,500,600,700%7CSignika:400,300,600,700%7CSignika+Negative:400,300,600,700%7CRosario:400,400italic,700,700italic%7CLora:400,400italic,700,700italic%7CAmaranth:400,700,400italic,700italic%7CChivo:400,900,400italic,900italic%7CTerminal+Dosis:400,200,300,500,600,700,800%7CIstok+Web:400,400italic,700,700italic%7COpen+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic%7CLato:400,100,100italic,300,300italic,400italic,700,700italic,900,900italic%7CMerriweather:400,300,700,900%7CCabin:400,400italic,500,500italic,600,600italic,700,700italic%7CDroid+Serif:400,400italic,700,700italic%7CArimo:400,400italic,700,700italic%7CUbuntu:300,300italic,400,400italic,500,500italic,700,700italic%7CVolkhov:400,400italic,700,700italic%7CArvo:400,700,400italic,700italic"><img class="alignright size-medium wp-image-2441" title="Captura_de_tela-Google Web Fonts - Mozilla Firefox" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/12/Captura_de_tela-Google-Web-Fonts-Mozilla-Firefox-300x230.png" alt="" width="300" height="230" /></a>O site de <a href="http://www.google.com/webfonts" target="_blank">web fontes do Google</a> oferece centenas de fontes tipográficas, cada uma mais bonita que a outra. A interface do site é excelente e oferece muitas possibilidades de visualização. A gente pode embutir as fontes em páginas web ou baixá-las para fazer publicações em papel.</p>
<p>Como esta modinha de internet vai passar logo, eu reuni uma coleção de fontes <strong>para se usar em jornais e revistas</strong>, seguindo os critérios:</p>
<ul>
<li><strong>Legibilidade</strong>. Principalmente a letra &#8220;a&#8221; deve ser de &#8220;barriguinha e topete&#8221;, não redonda &#8212; para não ser confundida com &#8220;o&#8221; &#8212; , e a altura &#8220;x&#8221; deve ser grande. Altura &#8220;x&#8221; é a altura das minúsculas em relação às  maiúsculas. Quanto mais altas as minúsculas, maior legibilidade.</li>
<li><strong>Seriedade</strong>. As fontes não podem ser &#8220;fantasia&#8221; ou ter detalhes que distraiam a atenção da mensagem textual. Algumas fontes do Google são bonitas mas ficam bem apenas em cartazes, convites, anúncios, não em jornais.</li>
<li><strong>Deve ter a família completa.</strong> As fontes devem ter, pelo menos, os estilos normal, <em>itálico</em>, <strong>negrito</strong> e <em><strong>negrito itálico</strong></em>, para dar flexibilidade de formatação e ênfase em certos trechos de títulos e textos.</li>
</ul>
<p>Baixe aqui a &#8220;<a href="http://www.google.com/webfonts#ChoosePlace:select/Collection:Cabin+Condensed:400,500,600,700|Signika:400,300,600,700|Signika+Negative:400,300,600,700|Rosario:400,400italic,700,700italic|Lora:400,400italic,700,700italic|Amaranth:400,700,400italic,700italic|Chivo:400,900,400italic,900italic|Terminal+Dosis:400,200,300,500,600,700,800|Istok+Web:400,400italic,700,700italic|Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic|Lato:400,100,100italic,300,300italic,400italic,700,700italic,900,900italic|Merriweather:400,300,700,900|Cabin:400,400italic,500,500italic,600,600italic,700,700italic|Droid+Serif:400,400italic,700,700italic|Arimo:400,400italic,700,700italic|Ubuntu:300,300italic,400,400italic,500,500italic,700,700italic|Volkhov:400,400italic,700,700italic|Arvo:400,700,400italic,700italic|Crimson+Text:400,700italic,600italic,400italic,700,600|Droid+Sans:400,700|Gentium+Basic:400,700italic,400italic,700|Gentium+Book+Basic:400,700,400italic,700italic|PT+Sans:400,700italic,400italic,700|PT+Sans+Caption:400,700|PT+Sans+Narrow:400,700|PT+Serif:400,700italic,400italic,700|PT+Serif+Caption:400,400italic|Puritan:400,700italic,400italic,700|Tinos:400,700italic,400italic,700|Vollkorn:400,700italic,400italic,700|Yanone+Kaffeesatz:400,700,300,200" target="_blank">Coleção Meira de Fontes Google</a>&#8220;. Clique à direita, em &#8220;Download your collection&#8221; para baixar um zip com a coleção toda.</p>
<h3>Saiba mais</h3>
<ul>
<li>Outra tecnologia de embutir fontes na Web: <a href="https://typekit.com">Typekit</a></li>
</ul>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2007/06/13/por-que-nao-se-deve-usar-a-fonte-avantgarde/" rel="bookmark" class="crp_title">Por que não se deve usar a fonte AvantGarde</a></li><li><a href="http://meiradarocha.jor.br/news/2007/07/25/fontes-substituem-times-new-roman-e-arial/" rel="bookmark" class="crp_title">Fontes substituem Times New Roman e Arial</a></li><li><a href="http://meiradarocha.jor.br/news/2007/12/11/linotype-fontexplorer-gratuito/" rel="bookmark" class="crp_title">LinoType FontExplorer gratuito</a></li><li><a href="http://meiradarocha.jor.br/news/2010/09/19/dicas-para-se-fazerem-jornais/" rel="bookmark" class="crp_title">28 dicas para se fazerem jornais</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/links-sobre-diagramacao-e-planejamento-grafico-em-jornalismo/" rel="bookmark" class="crp_title">Links sobre Diagramação e Planejamento Gráfico em Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2009/04/01/hacking-googlenilhawikipedia/" rel="bookmark" class="crp_title">Hacking googlenilha+Wikipédia</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/12/13/colecao-de-fontes-google-para-publicacoes-impressas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Análise: celular Wei Dream Android</title>
		<link>http://meiradarocha.jor.br/news/2011/11/15/analise-celular-wei-dream-android/</link>
		<comments>http://meiradarocha.jor.br/news/2011/11/15/analise-celular-wei-dream-android/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 00:15:40 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2281</guid>
		<description><![CDATA[Análise do celular dual chip Android Wei Dream, com TV analógica, FM, duas câmeras e GPS.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=An%C3%A1lise%3A+celular+Wei+Dream+Android&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Android&amp;rft.subject=TV&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-11-15&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/11/15/analise-celular-wei-dream-android/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2281"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Wei-dream-Android-e1321400936371.jpg"><img class="alignright size-medium wp-image-2319" title="Wei-dream-Android" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Wei-dream-Android-e1321400936371-300x279.jpg" alt="" width="300" height="279" /></a>Resolvi arriscar e comprar um celular Android chinês <a href="http://en.wikipedia.org/wiki/Shanzhai">Shanzhai</a>. Escolhi um dos mais baratos mas com bons recursos: o <strong>Wei Dream</strong>. Tem TV analógica, GPS, dois chips simultâneos, câmera na frente e atrás, entre outros recursos. Comprei pela <a href="http://www.mpway.com/Produtos.asp?ProdutoID=1651">MPWay</a> e o aparelho levou pouco mais de 40 dias para chegar pelos Correios, direto de Hong Kong para o interior do Rio Grande do Sul, Brasil. Custou R$ 199,90 (setembro de 2011), incluídos o frete e um cartão microSD de 2 GB.</p>
<p>Neste artigo, faço uma análise do aparelho, eventualmente comparando-o com o Samsung Galaxy 5 que comprei recentemente para minha mulher.</p>
<p>O <strong>Wei Dream</strong> tem um design bonito e despojado. Sua face é lisa, sem botões. Acima da tela ficam o logotipo do fabricante, o alto falante de chamadas e uma câmera de baixa resolução para vídeo-chamadas. As bordas têm uma proteção cromada e o corpo do aparelho é em material fosco com textura emborrachada. Os únicos botões estão na lateral superior, para ligar e desligar, e dois na lateral direita, controlados por uma única tecla, para aumentar e diminuir o volume. Na parte de baixo da tela, os tradicionais botões <em>Home</em>, <em>Menu</em>, <em>Back</em> e <em>Find</em>, do Android, são áreas sensíveis ao toque muito estreitas, que obrigam o usuário a tocá-los com a unha, em vez do dedo. No verso, na parte superior há a lente da câmera de alta resolução, dois leds para o flash e o alto falante, pequeno e com som ruim.</p>
<div id="attachment_2311" class="wp-caption alignleft" style="width: 250px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Wei-Dream-screen.png"><img class="size-full wp-image-2311" title="Minha tela inicial do Wei Dream" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Wei-Dream-screen.png" alt="Minha tela inicial do Wei Dream" width="240" height="400" /></a><p class="wp-caption-text">Minha tela inicial do Wei Dream, com o simpático robozinho de papelão</p></div>
<p>O aparelho veio sem caixa, protegido por espuma de plástico, acompanhado por um carregador com entrada USB, um cabo USB micro-B que pode ser colocado num computador ou no carregador (boa ideia!), um fone de ouvido com microfone e botão para atendimento de chamadas, e um folheto, menor que bula de remédio, que é chamado de &#8220;manual&#8221;, com instruções básicas para uso do aparelho.</p>
<p>A falta de manual decente é um ponto negativo para quem nunca usou Android. Para quem quiser aprender, recomendo baixar o <a href="http://www.samsung.com/br/support/detail/supportPrdDetail.do?menu=SP09&amp;prd_ia_cd=1903&amp;prd_mdl_cd=GT-I5500YKBZTO&amp;prd_mdl_name=GT-I5500B&amp;srchword=Galaxy+5">manual do Samsung Galaxy 5</a>.</p>
<p>A tela do Wei Dream tem 240 x 400 pixels e é resistiva, em vez de capacitiva, tecnologia mais cara. Trocando em miúdos, significa que tenho de fazer <strong>pressão</strong> na tela para controlar o aparelho, em vez de apenas passar o dedo como nos modelos de marcas mais caras. Isto pode ser um pouco desconfortável, mas tem a vantagem de permitir o uso de um estilete ou lápis com borracha macia na ponta, o que não é possível com a tela capacitiva, que só funciona com a eletricidade da ponta dos dedos.</p>
<p>É uma tela maior que a do Samsung Galaxy 5, que mede 240 x 320 px. No entanto, seu brilho é menor do que o da tela coreana. Também é de plástico um pouco ondulado e flexível, enquanto que a do Galaxy parece de vidro e é perfeitamente plana.</p>
<p>Os fones de ouvido com botão de atendimento e microfone são vagabundinhos e não tem nem indicação de qual é o esquerdo ou o direito. São meio grandes para ouvidos ocidentais. Como  ponto positivo, há o fato de que o <em>plug</em> é de 3,5 mm (P2). Ou seja: dá para usar qualquer fone de ouvido de boa qualidade.</p>
<p>A mesma entrada do fone de ouvido é usada para se &#8220;flashar&#8221; o Wei Dream &#8212; <a href="http://www.eten-users.eu/index.php?/topic/21207-hd9-mt6516-support-thread/page__p__144041&amp;#entry144041">gravar uma ROM do aparelho em sua memória <em>flash</em></a> &#8212; com um cabo USB-serial. Mas isto é coisa para hackers ou assistência técnica. Não tente fazer em casa.</p>
<h3>Wei</h3>
<p>Wei é &#8220;alô&#8221; em chinês. O <a href="http://www.weitechnology.com/">fabricante Wei é de Taiwan</a> (o site estava registrado por Ching Wei Technology Ltd., antes de se mudar para os EUA e deixar o site vazio), e vem penetrando agressivamente no mercado brasileiro a partir do segundo semestre de 2011, através das lojas online MPWay e MPXShop, que inundaram sites acessados por brasileiros com maciças campanhas publicitárias.</p>
<p>A Wei tinha um site bonitinho mas sem muitas informações ou serviços. Dali não extraí muita coisa interessante.</p>
<p>No interior do aparelho há indicações como sendo modelo Y803 e o FCC ID A3LGTY803. Este FCC ID é falso. A3L identifica produtos da Samsung. Não há produto registrado por A3LGTY803 no <a href="http://transition.fcc.gov/oet/ea/fccid/">banco de dados da FCC</a>. Possivelmente, o aparelho não foi homologado pela Comissão.</p>
<p>Na verdade, <a href="http://mingdutech.en.made-in-china.com/product/weAnUFjKSvrC/China-Android-System-Mobile-Phone-Y803.html">o celular Y803</a> é fabricado pela Shenzhen Mingdu Technology Co., Ltd., da China continental, que o fornece em regime de OEM. Por estas especificações, parece que o modelo foi atualizado para o processador MT6573, erroneamente descrito como MTK6513.</p>
<h3>Hardware</h3>
<p>O celular <strong>Wei Dream</strong> é baseado no <a href="http://www.mediatek.com/en/Products/product_content.php?sn=53">MT6516</a>, system-on-chip (SoC) &#8220;2.75G&#8221; da empresa chinesa <strong>MediaTek</strong>, uma das maiores empresas sem-fábrica (<em>fabless</em>) do mundo. <em>Fabless</em> são empresas que apenas projetam e comercializam dispositivos mas mandam fabricar em outros lugares.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/MT6516_Design_Notice_V1.0_01.jpg"><img class="size-medium wp-image-2294 alignright" title="MT6516_Design_Notice_V1.0_01" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/MT6516_Design_Notice_V1.0_01-300x210.jpg" alt="" width="300" height="210" /></a><em>System-on-chip</em> é o seguinte: os fabricantes colocam, num único chip, todos os  dispositivos necessários para um computador. No site da empresa não há detalhes, mas um chip posterior, <a href="http://www.mediatek.com/en/Products/product_content.php?sn=64">MT6573</a>, replica algumas das características do MT6516. Os esquemáticos confidenciais deste chip vazaram para a internet (<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/MT6516_Design_Notice_V1.0.pdf">MT6516_Design_Notice_V1.0</a>), de onde tirei este esquema ao lado.</p>
<p>Basicamente, a <strong>MediaTek</strong> juntou numa só placa:</p>
<ul>
<li>Um processador <strong>ARM926EJ-S rev 5 (v5l)</strong> de <strong>416 MHz</strong> (ARM9 Jazelle). Esta versão da família de processadores RISC ARM roda código Java de 8 bits diretamente pelo hardware, o que ajuda a aumentar a velocidade de execução desta linguagem infernalmente lenta.</li>
<li>Um processador <strong>ARM7</strong> de 104 MHz para o modem telefônico.</li>
<li>Um receptor/transmissor para rede celular EDGE &#8220;2.75G&#8221; (2,75ª geração? Esses marqueteiros!).</li>
<li>Receptor/transmissor Bluetooth e Wi-Fi.</li>
<li>Um receptor de TV digital e analógica.</li>
<li>Um receptor FM.</li>
<li>Um receptor GPS.</li>
<li>Um chip ASIC específico para manipular MP3, MP4, jpeg e imagens 2D e 3D, além de gerenciar a memória.</li>
<li>Controladores de periféricos para fone de ouvido, cartão microSD, 2 chips telefônicos, alto-falante, tela QVGA (320&#215;240), bateria inteligente, câmera fotográfica e de vídeo.</li>
</ul>
<p>A <strong>MediaTek</strong> fornece este chip e um hardware de referência para diversos fabricantes de celulares, que inundam o mercado com modelos levemente diferentes. Lançado em 2009, a <em>fabless</em> esperava vender mais de 10 milhões de chips em um ano.</p>
<p>Muitas marcas <a href="http://en.wikipedia.org/wiki/Shanzhai">Shanzhai</a> (apelidados de xing-ling no Brasil) usam este hardware, entre eles uma <a href="http://www.eten-users.eu/index.php?/topic/21207-hd9-mt6516-support-thread/page__s__a8510ea5225062026109e9138e075309">cópia do HTC chamada HD9</a>. Existem outros modelos chamados de Star A1000, A3000, <a href="http://www.clonedinchina.com/2011/02/cheap-dual-sim-android-phone-a5000-based-on-mtk6516.html">A5000</a>.</p>
<p>Este é o capitalismo chinês: a Wei não tem fábrica e encomenda celulares da Mingdu, que encomenda componentes de outras empresas como a MediaTek, que não tem fábrica e encomenda componentes de outras empresas. Toda esta  linha de fornecedores pode ser consultada em sites business-to-business (B2B) como <a href="http://www.made-in-china.com/">Made In China</a>, <a href="http://www.etradeasia.com/companies/3062/Electronic_Supplies.html">Asia Trade</a> e <a href="http://www.diytrade.com">DIYtrade</a>.</p>
<h3>Hacking Wei Dream</h3>
<p>Através do <a href="http://developer.android.com/sdk/index.html">Android Development Kit</a> (para Windowos e para Linux), com o cabo USB e a opção &#8220;Configuração &gt; Aplicativos &gt; Desenvolvimento &gt; Depuração USB&#8221; ligada, eu  entrei no <em>shell</em> deste celular com o comando:</p>
<pre>adb shell</pre>
<p>No shell, com o comando Linux &#8220;cat /proc/cpuinfo&#8221; obtive o seguinte resultado:</p>
<pre>cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 207.66
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5

Hardware        : MT6516 E1K
Revision        : 659e8b01
Serial          : 0000000000000000
$</pre>
<p>O dado mais significativo é o BogoMIPS, uma medida genérica Linux da velocidade do processador. No Galaxy 5 de 600 MHz, o BogoMIPS reportado é de 599. Estranho que a MediaTek informe que a velocidade do ARM926EJ-S é de 416 MHz, quando seu BogoMIPS é de 207.66, a metade do especificado.</p>
<p>Abaixo, o resultado do AnTuTu Benchmark. Último lugar. Só para referência, o <strong>HTC Wildfire S</strong> tem processador de 600 MHz e chegou a 1000 pontos. O <strong>Wei Dream</strong> obteve 634. Talvez o BogoMIPS de 207.66 MHz não corresponda à frequência real do processador.</p>
<div id="attachment_2304" class="wp-caption alignnone" style="width: 250px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Benchmark-2011-11-12-112150.png"><img class="size-full wp-image-2304" title="Benchmark do Android Wei Dream" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Benchmark-2011-11-12-112150.png" alt="Benchmark do Android Wei Dream" width="240" height="400" /></a><p class="wp-caption-text">Benchmark do Android Wei Dream</p></div>
<p>Outros resultados AnTuTu Benchmark:</p>
<div id="attachment_2306" class="wp-caption alignnone" style="width: 250px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Benchmark-2011-11-12-112255.png"><img class="size-full wp-image-2306" title="Benchmark do Wei Dream" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Benchmark-2011-11-12-112255.png" alt="Benchmark do Wei Dream" width="240" height="400" /></a><p class="wp-caption-text">Benchmark do Wei Dream</p></div>
<p>Interessante que o aplicativo AnTuTu não teve acesso à frequência do processador, nesta tela.</p>
<p>A memória reportada pelo Linux, que acessei pelo comando &#8220;dmesg&#8221; no <em>shell</em> Android foi esta:</p>
<pre>Memory: 124MB 63MB = 187MB total
Memory: 184312KB available (3688K code, 955K data, 144K init, 0K highmem)</pre>
<h3>Software</h3>
<p>O <strong>Wei Dream</strong> vem com alguns softwares do Google instalados, como Gmail, Navegador, Locals, Maps e Android Market, e muitos outros podem ser baixados pelo Market.</p>
<p>Além do Navegador do Google, ele veio com um programa de GPS chinês medonho, que não consegui usar porque não houve jeito de captar os satélites GPS, só localização por rede de telefonia e Wi-Fi, que dá precisão grosseira de uns 300 metros. Não sei se é defeito do meu aparelho ou do modelo.</p>
<p>Pelo comando &#8220;dmesg&#8221; do Android Linux <em>shell</em>, obtive os logs:</p>
<pre>[    1.124420] GPS: mt3326_gps_power: Switching GPS device on
[    1.125177] GPS: mt3326_gps_power: ignore power control: 1
[    1.125896] GPS: mt3326_gps_probe: Registering chardev
[    1.126579] GPS: mt3326_gps_probe: major: 229, minor: 0
[    1.127787] GPS: mt3326_gps_probe: Done</pre>
<p>Isto indica que o driver GPS foi carregado e deveria estar trabalhando. O Dalvik Debugger não mostra nenhuma mensagem de erro do GPS. Será alguma configuração errada?</p>
<h3>Sem Skype e sem Flash</h3>
<p>Talvez pela baixa velocidade do processador, o Skype avisou, na instalação, que é incompatível com o dispositivo. É chato ter câmera de vídeo-chamada e não poder usar.</p>
<p>O Adobe Flash for Mobile também não vai rodar (exige ARM11), mas isto não é problema porque <a href="http://imasters.com.br/noticia/22718/flash/flash-para-android-sera-descontinuado">nenhum celular mais vai rodar Flash</a>: ele foi descontinuado e será substituído por HTML5.</p>
<h3>Imagem e som</h3>
<p>Os vídeos do YouTube rodaram bem. Já as câmeras têm imagens terríveis, sem foco e sem luz nos cantos, parecendo <a href="http://en.wikipedia.org/wiki/Lomography">lomografias</a>. No entanto, a câmera de trás faz fotos de 1024 x 768 pixels e filma em mpeg4 a 720 x 480 pixels, 18 quadros por segundo,  o que é uma boa surpresa.</p>
<p>O comando <em>shell</em> Android  &#8220;getprop&#8221;, que lista o banco de dados do dispositivo &#8212; análogo ao registro do Windows &#8211;, reportou compatibilidade com os seguintes formatos:</p>
<pre>[ro.media.enc.hprof.file.format]: [3gp]
[ro.media.enc.hprof.codec.vid]: [m4v]
[ro.media.enc.hprof.vid.width]: [720]
[ro.media.enc.hprof.vid.height]: [480]
[ro.media.enc.hprof.vid.fps]: [30]
[ro.media.enc.hprof.vid.bps]: [3400000]
[ro.media.enc.hprof.codec.aud]: [amrnb]
[ro.media.enc.hprof.aud.bps]: [12200]
[ro.media.enc.hprof.aud.ch]: [1]
[ro.media.enc.hprof.aud.hz]: [8000]
[ro.media.enc.mprof.file.format]: [3gp]
[ro.media.enc.mprof.codec.vid]: [m4v]
[ro.media.enc.mprof.vid.width]: [352]
[ro.media.enc.mprof.vid.height]: [288]
[ro.media.enc.mprof.vid.fps]: [30]
[ro.media.enc.mprof.vid.bps]: [990000]
[ro.media.enc.mprof.codec.aud]: [amrnb]
[ro.media.enc.mprof.aud.bps]: [12200]
[ro.media.enc.mprof.aud.ch]: [1]
[ro.media.enc.mprof.aud.hz]: [8000]
[ro.media.enc.lprof.file.format]: [3gp]
[ro.media.enc.lprof.codec.vid]: [h263]
[ro.media.enc.lprof.vid.width]: [176]
[ro.media.enc.lprof.vid.height]: [144]
[ro.media.enc.lprof.vid.fps]: [30]
[ro.media.enc.lprof.vid.bps]: [384000]
[ro.media.enc.lprof.codec.aud]: [amrnb]
[ro.media.enc.lprof.aud.bps]: [12200]
[ro.media.enc.lprof.aud.ch]: [1]
[ro.media.enc.lprof.aud.hz]: [8000]
[ro.kernel.touchpanel.type]: [capacitive]</pre>
<p>Hprof, mprof e lprof imagino que sejam os perfis multimídia de qualidade alta, média e baixa, respectivamente. Então, os formatos de encodificação suportados pelo hardware seriam:</p>
<ul>
<li><strong>Alta qualidade</strong>: vídeo <em>container</em> <strong>3gp</strong>, codec <strong>mpeg4</strong>, imagem com dimensões de <strong>720&#215;480</strong> pixels, <strong>30</strong> quadros por segundo, banda máxima de <strong>3400 bps</strong>, áudio formato <strong></strong><strong>AMR-NB</strong>, <strong>8 KHz</strong>, <strong>12,2 bps</strong>, <strong>um</strong> canal.</li>
<li><strong>Média qualidade</strong>: vídeo <em>container</em> <strong>3gp</strong>, codec <strong>mpeg4</strong>, imagem com dimensões de <strong>352&#215;288</strong> pixels (<a href="http://en.wikipedia.org/wiki/Common_Intermediate_Format">CIF</a>), 30 quadros por segundo, banda máxima de <strong>990 bps</strong>, áudio formato <strong></strong><strong>AMR-NB</strong>, <strong>8 KHz</strong>, <strong>12,2 bps</strong>, <strong>um</strong> canal.</li>
<li><strong>Baixa qualidade</strong>: vídeo <em>container</em> <strong>3gp</strong>, codec <strong>h263</strong>, imagem com dimensões de <strong>176&#215;144</strong> pixels (<a href="http://en.wikipedia.org/wiki/Common_Intermediate_Format">QCIF</a>), 30 quadros por segundo, banda máxima de <strong>384 bps</strong>, áudio formato <strong>AMR-NB</strong>, <strong>8 KHz</strong>, <strong>12,2 bps</strong>, <strong>um</strong> canal.</li>
</ul>
<p>Não sei o quanto se pode confiar nestas informações, porque a chave &#8220;ro.kernel.touchpanel.type&#8221; diz que a tela é capacitiva quando ela é resistiva. Que outras chaves estarão incorretas?</p>
<p>Como se pode ver pelas especificações, o áudio é da pior qualidade possível &#8212; AMNR-NB é codec para voz, tem um som de lata. E a baixa sensibilidade do microfone não ajuda em nada.</p>
<p>O alto-falante externo é pequeno e tem som muito baixo e de péssima qualidade.</p>
<p>O gravador de áudio <em>default</em> grava com um volume terrivelmente baixo, e em formato AAC. Além disto, guarda as gravações na raiz do microSD, em vez de colocar numa pasta própria. Programador relapso!</p>
<p>O único programa que gravou razoavelmente bem foi o <a href="https://market.android.com/details?id=ix.com.android.VirtualRecorder">VirtualRecorder</a> com a pré-amplificação no máximo ou &#8220;<em>Enable booster</em>&#8221; ligado. Depois, é preciso converter para os arquivos gerados em formato PCM para MP3 através do programa <a href="https://market.android.com/details?id=org.freemp3droid&amp;feature=search_result#?t=W251bGwsMSwyLDEsIm9yZy5mcmVlbXAzZHJvaWQiXQ..">FreeMP3Droid</a>.</p>
<p>Mas o vídeo em média resolução &#8212; 720 x 480 pixels &#8212; é até razoável para um dispositivo desta classe, embora eu só obtivesse 18 quadros por segundo e 2200 bps, em média, e não os 30 fps e 3400 bps registrados.</p>
<h3>Media player</h3>
<p>Como <em>media player</em> o Wei Dream funciona legal: roda mp3 e mpeg4! Ideal para uma viagem longa ouvindo música ou assistindo a vídeos.</p>
<p>Ao converter vídeos para carregar no <strong>Wei Dream</strong>, obtive sucesso com o programa livre <strong>WinFF</strong> (para Linux e Windows, um <em>front end</em> para o <strong>ffmpeg</strong>) e com os  seguintes parâmetros colocados num perfil que criei, &#8220;Mobile Phone &gt; Wei Dream wide&#8221;:</p>
<pre>-r 15 -vcodec mpeg4 -vtag mp4v -s 400x240 -aspect 5:3 -acodec libfaac -ar 22050 -sample_fmt s16 -ab 128k -ac 2</pre>
<p>Para manter a proporção da TV <em>standard</em>, fiz um outro perfil com &#8220;-s 320&#215;240 -aspect 4:3&#8243;.</p>
<p>O formato do arquivo <em>conteiner</em> deve ser &#8220;3gp&#8221;. Posso baixar dezenas de vídeos do YouTube pelo <a href="http://www.getmiro.com/">Miro</a> e depois converter tudo em batelada.</p>
<p>Um minuto de vídeo gravado da TV a 720&#215;480 pixels, 30 fps, 2000 bps, que ocupa 13 MB, fica com 2,5 MB depois de convertido.</p>
<h3>Leitura de códigos QR</h3>
<p>Vale reportar que o único <strong>leitor de QR Code</strong> que funcionou com a câmera foi o <a href="https://market.android.com/details?id=com.scanbuy.leitorvivo&amp;feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5zY2FuYnV5LmxlaXRvcnZpdm8iXQ..">Leitor Vivo</a>, da operadora de telefonia Vivo, aplicativo OEM da ScanLife. O original também funciona. Isto é bom, pois um leitor de <a href="http://pt.wikipedia.org/wiki/C%C3%B3digo_QR">QR Code</a> é importante para usuários de <em>mobile</em> evitarem a chatíssima digitação de URLs.</p>
<p>No entanto, este aplicativo tem uma estranha incompatibilidade com o excelente pega-ladrão <a href="http://preyproject.com/">Prey</a>. O leitor praticamente trava o Wei Dream de tal forma que é necessário ressetar o aparelho. &#8220;Reset&#8221; é como a MediaTek chama tirar a pilha.</p>
<h3>TV e rádio</h3>
<p>A televisão teve uma boa recepção, graças à antena telescópica embutida, mesmo na área de sinal fraco em que moro. Durante a recepção de TV, pode-se tirar <em>screenshots</em> da tela em formato jpeg 320 x 240 pixels ou gravar o vídeo em formato de média qualidade, razoável para mandar ao YouTube. Um ponto a favor do chip MT6516.</p>
<p>O rádio também tem uma boa recepção em função da antena telescópica e não precisa de fone de ouvido para sintonizar, diferentemente de alguns celulares que usam os fios do fone como antena. Outro ponto positivo. Mas, a lista de estações preferidas é pequena: cabem apenas 5 rádios.</p>
<p>No entanto, qualquer atividade multimídia fica com áudio &#8220;picotado&#8221; se o Wei Dream tiver que fazer outra tarefa, como atualizar algo pela rede.</p>
<h3>Jogos</h3>
<div id="attachment_2385" class="wp-caption alignright" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/device-2011-11-17-115302.png"><img class="size-medium wp-image-2385" title="device-2011-11-17-115302" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/device-2011-11-17-115302-300x180.png" alt="" width="300" height="180" /></a><p class="wp-caption-text">Artifacs: erro do chip jpeg?</p></div>
<p>Bom&#8230; <em>dá</em> pra jogar Angry Birds, não se preocupe. Meio travadinho, sem som, sem a engraçadíssima gritaria dos passarinhos, mas roda. Estranho são os <em>artifacs</em> que aparecem nas telas (imagem ao lado) nas bordas das lajotas bitmap que formam as telas do jogo. Suponho que sejam erros do chip processador de jpeg, mas estou &#8220;chutando&#8221;.</p>
<p>Compare com uma imagem do Samsung Galaxy 5.</p>
<div id="attachment_2411" class="wp-caption alignright" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/device-2011-11-18-115527.png"><img class="size-medium wp-image-2411" title="Angry Birds no Galaxy 5" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/device-2011-11-18-115527-300x240.png" alt="Angry Birds no Galaxy 5" width="300" height="240" /></a><p class="wp-caption-text">Angry Birds no Galaxy 5</p></div>
<p><strong>Já joguinhos 3D, sem chance</strong>. O MT6516 não tem fôlego para isto.</p>
<h3>Baterias</h3>
<p>Como em qualquer Android &#8212; aliás, qualquer <em>smartphone</em> com sistema tipo Unix &#8211;, as baterias de 1200 mAh duram pouco, talvez 3 h de uso intensivo como assistindo vídeos e navegando na internet.</p>
<p>Para abrir a tampa do Wei Dream, deve-se colocar a unha na ranhura, encostar o pulso no aparelho e fazer um movimento como quem acelera uma moto, com cuidado.</p>
<p>As baterias ficam por cima dos cartões SIM, e estes ficam por cima do cartão microSD, o que impede o <em>hot swap</em> (como se alguém fosse doido de fazer <em>hot swap</em> numa partição Linux montada). É preciso cuidado para abrir a cobertura do SIM1. É necessário se deslizar a cobertura metálica uns milímetros para trás, para liberar a trava e acessar o microSD. Atenção: <strong>o cartão SIM1 fica <em>encaixado</em> nesta tampinha</strong> e move-se com ela. O cartão SD fica embaixo do SIM1 e também é travado com uma pequena aba que deve ser afastada para librá-lo. O desenho que explica isto está de cabeça para baixo.</p>
<h3>Custo</h3>
<p>Fico impressionado com o marketing industrial da cultura <a href="http://en.wikipedia.org/wiki/Shanzhai">Shanzhai</a> chinesa. Este aparelho custou R$ 199,99. São 113 dólares, pelo câmbio de setembro de 2011. Desconte uns 4 dólares pela memória de 2GB, menos uns 13 dólares pelo frete, e temos um aparelho que pode ter custado 96 dólares. A margem de lucros deve ser mínima, pois na época do lançamento da plataforma MT6516, em 2009-2010, o custo estimado desta classe de dispositivos era de 100 a 105 dólares. A faixa de 95 a 100 dólares era da uma classe imediatamente inferior, de aparelhos sem Android.</p>
<p>Imagino que esta classe tenha baixado de preço em função do novo chip MT6573, que roda a 650 MHz e tem 3G.</p>
<p>O lado negativo do preço baixo é que os fabricantes economizam em tudo: falta suporte, manual, assistência técnica. Se o aparelho estragar, é o fim!</p>
<p>Se eu fosse consultor dos chineses, recomendaria abrirem as especificações e criarem comunidades de fãs para melhorarem os aparelhos de graça.</p>
<h3>Conclusões</h3>
<p>O celular Wei Dream é bom? (frase para ficar bem colocado no Google). Depende do que se quer fazer com ele e de quanto dinheiro pretende-se gastar.</p>
<p>Apesar do baixo desempenho, o <strong>Wei Dream</strong> tem um ótimo custo/benefício. É o Android mais barato do mundo. Vale a pena para quem quer entrar no mundo Android e não é exigente em relação a recursos multimídia ou de jogos. Para comunicação e internet, o dispositivo cumpre bem a função, assim como para quem quer aproveitar as melhores ofertas de duas operadoras diferentes ao mesmo tempo.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Android-wallpaper+1.png"><img class="alignright size-medium wp-image-2419" title="Android-wallpaper+(1)" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Android-wallpaper+1-e1321811478196-245x300.png" alt="" width="245" height="300" /></a>E &#8212; ora bolas! &#8212; é um Android! Super hackeável! Quero ver alguém fazer com o iPhone o que se pode fazer com um Android.</p>
<p>Quem pretende começar a desenvolver aplicativos para esta plataforma, é bom começar com um mínimo denominador comum, um dispositivo de baixo desempenho. E barato, para o caso de transformar o celular num tijolo, numa aventura de <em>flashing</em> mal sucedida.</p>
<h3>Pontos positivos</h3>
<ul>
<li>É Android.</li>
<li>É Android atualizado, versão 2.2.1 &#8220;Froyo&#8221;.</li>
<li>Tem preço baixo: 113 dólares por um Android com cartão de 2MB é uma barganha.</li>
<li>Suporta dois chips simultâneos.</li>
<li>Tem duas câmeras.</li>
<li>Grava vídeos em resolução 720&#215;480 pixels.</li>
<li>O software de fotos tem recursos para fotos panorâmicas, reconhecimento de rostos e sorrisos.</li>
<li>Capta boa imagem da TV analógica, padrão que vai funcionar no Brasil até 2016. Até lá, este celular estará obsoleto.</li>
<li>Possui carregador com entrada USB. O mesmo cabo MicroUSB carrega pela tomada ou pelo computador.</li>
<li>Tem <em>timer</em> para desligar e ligar o aparelho automaticamente. À noite, por exemplo.</li>
<li>O fone tem <em>plug</em> P2 de 3,5 mm.</li>
</ul>
<h3>Pontos negativos</h3>
<ul>
<li>O GPS não captou nenhum satélite, apenas pontos Wi-Fi e de telefonia.</li>
<li>Não tem assistência técnica no Brasil. Se estragar, resulta em perda total.</li>
<li>Fabricante não dá suporte para ROMs e atualizações. Não achei nada no site da Wei.</li>
<li>Tem velocidade de clock baixa (207,66 MHz? 416 MHz?).</li>
<li>Não rodou Skype, que diz que o dispositivo é incompatível ou dá erro na partida.</li>
<li>Não roda Flash.</li>
<li>As fotos e vídeos são de baixa qualidade.</li>
<li>Tem baixíssimo desempenho 3D.</li>
<li>Tem baixa qualidade de áudio gravado.</li>
</ul>
<h3>Referências</h3>
<ul>
<li><a href="http://www.cn-c114.net/578/a566552.html">MediaTek to ship 10 million MT6516 smartphone solutions in December and January, says paper</a></li>
<li><a href="http://www.linuxforu.com/how-to/android-on-a-dual-sim-smartphone/">Android on a Dual-SIM Smartphone</a></li>
<li><a href="http://www.globalsources.com/gsol/I/Smartphone/a/9000000118860.htm">Android phone R&amp;D underscores features-rich units</a></li>
<li><a href="http://pdadb.net/index.php?m=cpu&amp;id=a6516&amp;c=mediatek_mt6516">MediaTek MT6516 RISC Microprocessor</a></li>
<li><a href="http://www.thegeekstuff.com/2010/11/linux-proc-file-system/">Explore Linux /proc File System</a></li>
<li><a href="http://forum.xda-developers.com/wiki/index.php?title=Chinese_Clones_MTK6516">Chines clones MTK6516</a></li>
</ul>
<h3>Saiba mais</h3>
<ul>
<li><a href="http://www.celularesandroid.com.br/">Celulares Android</a></li>
</ul>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2011/12/18/como-ressetar-o-wei-dream-android/" rel="bookmark" class="crp_title">Como ressetar o Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2011/12/18/como-usar-o-celular-wei-dream-como-modem/" rel="bookmark" class="crp_title">Como usar o celular Wei Dream como modem</a></li><li><a href="http://meiradarocha.jor.br/news/2007/07/16/como-assistir-tv-a-cabo-de-graca/" rel="bookmark" class="crp_title">Como assistir a TV a cabo de graça</a></li><li><a href="http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/" rel="bookmark" class="crp_title">Como converter imagens RGB para CMYK em GNU/Linux</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2008/05/31/avaliacao-do-nokia-5200-boas-e-mas-noticias/" rel="bookmark" class="crp_title">Avaliação do Nokia 5200: boas e más notícias</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/11/15/analise-celular-wei-dream-android/feed/</wfw:commentRss>
		<slash:comments>381</slash:comments>
		</item>
		<item>
		<title>Montador de matéria jornalística para PageMaker</title>
		<link>http://meiradarocha.jor.br/news/2011/11/02/montador-de-materia-jornalistica-para-pagemaker/</link>
		<comments>http://meiradarocha.jor.br/news/2011/11/02/montador-de-materia-jornalistica-para-pagemaker/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 18:51:44 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[PageMaker]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2249</guid>
		<description><![CDATA[Script para montar matérias jormalísticas automaticamente]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Montador+de+mat%C3%A9ria+jornal%C3%ADstica+para+PageMaker&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=PageMaker&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-11-02&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/11/02/montador-de-materia-jornalistica-para-pagemaker/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2249"><!-- &nbsp; --></abbr>
<p>Embora o PageMaker esteja superado, muita gente ainda usa-o e continuará usando-o por alguns anos. Por exemplo, o curso de Jornalismo da UFSM em Frederico Westphalen trabalha com PageMaker ao lado do <strong>Scribus</strong>, programa mais atualizado e em software livre .</p>
<p>Para facilitar o trabalho dos alunos, criei <em>scripts</em> para automatizar a montagem de matéria jornalística (<em>story</em>) em jornais e revistas.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/paleta-scripts.jpg"><img class="alignright size-medium wp-image-2253" title="Paleta de scripts do PageMaker" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/paleta-scripts-173x300.jpg" alt="" width="173" height="300" /></a>O arquivo executável abaixo instala os <em>scripts</em> e um novo <em>engine</em> de <em>scripts</em> do PageMaker nunca distribuído oficialmente, criado pelo funcionário da Adobe desenvolvedor desta parte do sistema. Além disto, também instala a documentação da linguagem <em>script</em>. Aviso legal: Não ofereço nenhuma garantia. Use-o por sua conta e risco.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/Scripts-PageMaker.7z">Scripts PageMaker (2.1 MB, arquivo 7Z).</a></p>
<p>Os <em>scripts</em> são instalados por <em>default</em> na pasta c:\Arquivos de programas\Adobe\PageMaker 7.0\RSRC\BRASIL\PLUGINS\Roteiros\Diagramação\. Assim, aparecem na paleta de Roteiros do PageMaker (Menu &#8220;Janela &gt; Recursos adicionais &gt; Exibir roteiros&#8221;, ou <kbd>ALT</kbd>+<kbd>J</kbd>, <kbd>R</kbd>, <kbd>R</kbd>). Os meus <em>scripts</em> ficam na pasta &#8220;Diagramação&#8221;, que não existe na instalação original do PM.</p>
<p>Os <em>scripts</em> &#8220;<strong>Cria folha de estilos</strong>&#8221; e &#8220;<strong>Cria folha de estilos CN</strong>&#8221; criam estilos básicos para diagramação de jornais e revistas. O segundo é especial para o jornal-laboratório Curso da Notícia, da UFSM.</p>
<p>Os <em>scripts</em> &#8220;<strong>Monta foto solta</strong>&#8221; e &#8220;<strong>Monta foto em quadro</strong>&#8221; adicionam legenda e crédito a fotos colocadas soltas ou em quadros, respectivamente. Selecione a foto ou o quadro e rode o script. Preencha os textos e clique OK. A foto, a legenda e os créditos ficam agrupados e com o &#8220;afastador de texto&#8221; ligado nos lados e embaixo do grupo. O crédito fica à direita, em 90 graus.</p>
<p>Mas o melhor vem agora: o <em>script</em> &#8220;<strong>Monta matéria NG&#8221;</strong> (New Generation) monta uma matéria jornalística completa, com texto formatado. Funciona assim:</p>
<ol>
<li>Copio um texto de um editor de texto ou copio um bloco de texto do PageMaker.</li>
<li>Desenho um quadro de texto. (Não confunda <strong>quadro</strong> de texto com <strong>bloco</strong> de texto. Não uso blocos de texto solto para diagramar jornais no PageMaker, pois é uma abordagem superada e perigosa). Veja abaixo o quadro selecionado e, na página ao lado, o bloco de texto copiado e esperando na memória <em>clipboard</em> do Windows. Repare também que a folha de estilos para jornal está bem completa.<br />
<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-01.jpg"><img class="alignnone size-medium wp-image-2255" title="monta-materia-pagemaker-01" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-01-300x206.jpg" alt="" width="300" height="206" /></a></li>
<li>Rodo o <em>script</em> clicando duas vezes em cima do nome dele. Surgirá a seguinte janela de diálogo:<br />
<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/dialogo-monta-materia.jpg"><img class="alignnone size-medium wp-image-2252" title="dialogo-monta-materia" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/dialogo-monta-materia-300x263.jpg" alt="" width="300" height="263" /></a><br />
Nela, eu escolho os estilos a serem aplicados em até sete primeiros parágrafos do texto na memória (O <em>script</em> automaticamente limpa o texto, tirando parágrafos vazios e tabulações. Portanto, não me preocupo se há parágrafos extra no texto). Se eu não quero que um estilo seja aplicado (por exemplo, se a matéria não tem antetítulo), eu desmarco a <em>checkbox</em> ao lado do estilo. No segundo e terceiro parágrafos (título e subtítulo), eu devo escolher quantas linhas de texto os elementos vão ocupar. Depois dos estilos, determino em quantas colunas o texto da matéria será dividido, e se quero linhas guia em volta desta matéria, para ajudar a posicionar outras matérias.</li>
<li>Depois de alguns segundos limpando o texto, o <em>script</em> monta um quadro de texto para os títulos da matéria e um quadro de texto para cada coluna da matéria:<br />
<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-02.jpg"><img class="alignnone size-medium wp-image-2257" title="monta-materia-pagemaker-02" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-02-300x206.jpg" alt="" width="300" height="206" /></a></li>
<li>Os quadros das colunas são agrupados para que eu possa ajustar em bloco sua altura (o bloco do título não é agrupado para que sua altura não seja distorcida). Como todos os quadros de texto estão ligados, o texto passa de uma coluna para outra. Veja como fica a matéria quando eu levanto a alça inferior do grupo:<br />
<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-03.jpg"><img class="alignnone size-medium wp-image-2258" title="monta-materia-pagemaker-03" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/monta-materia-pagemaker-03-300x206.jpg" alt="" width="300" height="206" /></a><br />
Este efeito só funciona quando se usam quadros de texto, não blocos de texto.</li>
<li>Para editar o texto, seleciono o quadro do título e uso <kbd>CTRL</kbd>+<kbd>E</kbd>.</li>
</ol>
<p>Para <strong>Scribus</strong>, desenvolvi um <em>script</em> bem mais poderoso, cuja tela de diálogo se vê abaixo:<br />
<a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/scribus-newspaper-story-builder1.png"><img class="alignnone size-medium wp-image-2268" title="scribus-newspaper-story-builder" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/11/scribus-newspaper-story-builder1-300x222.png" alt="" width="300" height="222" /></a></p>
<h3>Bibliografia</h3>
<ol>
<li> SAMARSKIY, Vladimir. Site pessoal do criador do <em>script engine</em> do PageMaker. Site web disponível em: &lt;<a href="http://www.oz.net/%7Evsamarsk/WinEntry.htm">http://www.oz.net/~vsamarsk/WinEntry.htm</a>&gt;. Acesso em: 2 nov. 2011.</li>
<li>Adobe PageMaker 7.0 Script Guide. Documento em PDF disponível no CD-ROM da aplicação. San Jose, California: Adobe Systems Incorporated, 2001.</li>
</ol>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2010/11/27/script-para-montar-materias-no-pagemaker/" rel="bookmark" class="crp_title">Script para montar matérias no PageMaker</a></li><li><a href="http://meiradarocha.jor.br/news/2008/07/17/editoracao-quanto-menos-quadros-melhor/" rel="bookmark" class="crp_title">Editoração: quanto menos quadros, melhor</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/10/editoracao-com-software-livre-fotos-legendas-e-credito-automatizados-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: fotos, legendas e crédito automatizados no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2008/07/10/indesign-legendas-e-creditos-de-fotos-automaticamente/" rel="bookmark" class="crp_title">InDesign: legendas e créditos de fotos automaticamente</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/13/editoracao-com-software-livre-aplicando-estilos-automaticamente-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: aplicando estilos automaticamente no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/30/editoracao-com-software-livre-caixa-de-destaque-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: caixa de destaque no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2010/05/17/criar-publicacao-e-paginas-com-scribus/" rel="bookmark" class="crp_title">Como criar publicação e páginas com Scribus</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/11/02/montador-de-materia-jornalistica-para-pagemaker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bibliografia sobre planejamento gráfico de jornais</title>
		<link>http://meiradarocha.jor.br/news/2011/09/21/bibliografia-sobre-planejamento-grafico-de-jornais/</link>
		<comments>http://meiradarocha.jor.br/news/2011/09/21/bibliografia-sobre-planejamento-grafico-de-jornais/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 02:15:30 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Editoração]]></category>
		<category><![CDATA[Jornalismo]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2212</guid>
		<description><![CDATA[Minha coleção incompleta de referências bibliográficas sobre desenho de jornal. Alguns eu comprei pela Amazon Books, usados.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Bibliografia+sobre+planejamento+gr%C3%A1fico+de+jornais&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Editora%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-09-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/09/21/bibliografia-sobre-planejamento-grafico-de-jornais/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2212"><!-- &nbsp; --></abbr>
<div id="attachment_2214" class="wp-caption alignright" style="width: 265px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/09/newspaperdisigenrshandbook.jpg"><img class="size-medium wp-image-2214" title="Newspaper Designer's Handbook" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/09/newspaperdisigenrshandbook-255x300.jpg" alt="" width="255" height="300" /></a><p class="wp-caption-text">Newspaper Designer&#39;s Handbook, o melhor livro sobre diagramação de jornais jamais escrito</p></div>
<p>Minha coleção incompleta de referências bibliográficas sobre desenho de jornal. Alguns eu comprei pela Amazon Books, usados.</p>
<ol>
<li>AMES, S. E. <strong>Elements of newspaper design</strong>. [S.l.]: Praeger, 1989. ISBN 9780275923303.</li>
<li>ARNOLD, E. C. <strong>Functional newspaper design</strong>. [S.l.]: Harper, 1956. Disponível em: &lt;http://books.google.com/books?id=xoHgAAAAMAAJ&gt;.</li>
<li>ARNOLD, Edmund C. <strong>Modern newspaper design</strong>. [S.l.]: Harper &amp; Row, 1969.</li>
<li>ARNTSON, A. E. <strong>Graphic design basics</strong>. [S.l.]: Cengage Learning, 2007. ISBN 9780495006930. Disponível em: &lt;http://books.google.com/books?id=khuV518lMtMC&gt;. Acesso em: 11 apr. 2011.</li>
<li>BACELAR, J. Linguagem da visão. <strong>Biblioteca Online de Ciências da Comunicação</strong>, [S.l.], 1998. Disponível em: &lt;http://www.bocc.uff.br/pag/bacelar_linguagem.pdf&gt;. Acesso em: 20 sep. 2010.</li>
<li>BACELAR, J. Apontamentos sobre a história e desenvolvimento da impressão. <strong>Biblioteca Online de Ciências da Comunicação</strong>, [S.l.], 1999. Disponível em: &lt;http://www.bocc.uff.br/pag/bacelar_apontamentos.pdf&gt;. Acesso em: 20 sep. 2010.</li>
<li>BERRY, J. D. <strong>Contemporary newspaper design: shaping the news in the digital age : typography &amp; image on modern newsprint</strong>. [S.l.]: Mark Batty Publisher, 2004. ISBN 9780972424035.</li>
<li>COLLARO, A. C. <strong>Projeto Grafico: Teoria e Pratica da Diagramacao</strong>. [S.l.]: Summus Editorial, 1987. ISBN 9788532302779.</li>
<li>CORRÊA, E. de A. <strong>O Uso do Software Livre na Indústria Gráfica</strong>. Disponível em: &lt;http://eduacorrea.blogspot.com/2011/02/o-uso-do-software-livre-na-industria.html&gt;. Acesso em: 7 feb. 2011.</li>
<li>DOUGLAS, J. <strong>Jornalismo: a técnica do título</strong>. [S.l.]: Agir, 1966.</li>
<li>ELAM, K. <strong>Grid systems: principles of organizing type</strong>. [S.l.]: Princeton Architectural Press, 2004. ISBN 9781568984650. Disponível em: &lt;http://books.google.com/books?id=ROY7BTddbjgC&gt;. Acesso em: 10 apr. 2011.</li>
<li>FERREIRA, A. <strong>Elementos mínimos de linguagem visual jornalística em jornais-laboratório</strong>. Trabalho. Disponível em: &lt;http://www.fnpj.org.br/soac/ocs/viewabstract.php?id=142&amp;cf=7&gt;. Acesso em: 17 apr. 2011.</li>
<li>GARCÍA, M. R. <strong>Contemporary newspaper design: a structural approach</strong>. [S.l.]: Prentice Hall, 1993. ISBN 9780131748712. Disponível em: &lt;http://books.google.com/books?id=ZEfhAAAAMAAJ&gt;.</li>
<li>GARCIA, M.; STARK, P. <strong>Eyes on the News</strong>. St. Petersbourg: Poynter Institute for Media Studies, 1991.</li>
<li>GILES, V.; HODGSON, F. W. <strong>Creative newspaper design</strong>. [S.l.]: Focal Press, 1996. ISBN 9780240514420. Disponível em: &lt;http://books.google.com/books?id=V0_hAAAAMAAJ&gt;.</li>
<li>GOMES FILHO, J. <strong>Gestalt do objeto: sistema de leitura visual da forma</strong>. São Paulo: Escrituras Editora, 2002. ISBN 9788586303579. Disponível em: &lt;http://books.google.com/books?id=26AmgxXxNiwC&gt;. Acesso em: 12 apr. 2011.</li>
<li>
<div>
<div>HARROWER, T. <strong>The Newspaper Designer’s Handbook</strong>. [S.l.]: McGraw-Hill Higher Education, 2007. ISBN 9780072996692.<br />
Faça um cartão de crédito internacional e compre da Amazon Books, ou peça a um amigo para trazer, qualquer coisa. Se necessário, roube e mate para conseguir um.</div>
</div>
</li>
<li>HURLBURT, A. <strong>LAYOUT &#8211; O DESIGN DA PAGINA IMPRESSA</strong>. [S.l.]: Nobel, [S.d.]. ISBN 9788521304265. Disponível em: &lt;http://books.google.com/books?id=-j68dcUBIpgC&gt;. Acesso em: 12 apr. 2011.</li>
<li>HUTT, A. <strong>Newspaper design</strong>. [S.l.]: Oxford U.P., 1967.</li>
<li>HYÖNÄ, J.; RADACH, R.; DEUBEL, H. <strong>The mind’s eye: cognitive and applied aspects of eye movement research</strong>. [S.l.]: Elsevier, 2003. ISBN 9780444510204.</li>
<li>LAGE, N. <strong>A reportagem: teoria e técnica de entrevista e pesquisa jornalística</strong>. 7th ed. Rio de Janeiro: Record, 2008. ISBN 978-85-0106090-7. Disponível em: &lt;http://books.google.com.br/books?id=0Fn9GQM_txIC&amp;printsec=frontcover&amp;dq=nilson+lage&amp;ei=HO5_TIfvAqHqzATKqvzEAw&amp;cd=1#v=onepage&amp;q&amp;f=false&gt;. Acesso em: 2 sep. 2010.</li>
<li>LUPTON, E.; PHILLIPS, J. C. <strong>Graphic design: the new basics</strong>. [S.l.]: Princeton Architectural Press, 2008. ISBN 9781568987705.</li>
<li>LUPTON, E.; STOLARSKI, A. <strong>Pensar com Tipos</strong>. [S.l.]: Editora Cosac Naify, [S.d.]. ISBN 9788575035535.</li>
<li>MOEN, D. <strong>Newspaper layout and design</strong>. 2nd ed. Ames: Iowa State University Press, 1989. ISBN 9780813812274.</li>
<li>MOEN, D. R. <strong>Newspaper layout and design</strong>. [S.l.]: Iowa State University Press, 1989. ISBN 9780813812274.</li>
<li>NELSON, R. P. <strong>Publication design</strong>. [S.l.]: Wm. C. Brown, 1991. ISBN 9780697086204.</li>
<li>OTERO, O. <strong>Clasificación de tipos</strong>. Blog. Disponível em: &lt;http://gl.letrag.com/clasificacion.php&gt;. Acesso em: 23 apr. 2011.</li>
<li>ROBERTS, L.; THRIFT, J. <strong>The designer and the grid</strong>. [S.l.]: Rotovision, 2005. ISBN 9782880468149.</li>
<li>SAATKAMP, H. <strong>O Livro Preparacao &amp; Revisao de Originais</strong>. [S.l.]: Editora AGE Ltda, [S.d.]. ISBN 9788585627034.</li>
<li>SAMARA, T. <strong>Making and breaking the grid: a graphic design layout workshop</strong>. [S.l.]: Rockport Publishers, 2005. ISBN 9781592531257. Disponível em: &lt;http://books.google.com/books?id=gmVlWKlwrRwC&gt;. Acesso em: 10 apr. 2011.</li>
<li>SAMARA, T.; BOTTMANN, D. <strong>GRID &#8211; CONSTRUÇAO E DESCONSTRUÇAO</strong>. [S.l.]: Editora Cosac Naify, 2008. ISBN 9788575036297. Disponível em: &lt;http://books.google.com/books?id=wf&#8211;OPVvgxkC&gt;. Acesso em: 12 apr. 2011.</li>
<li>SCALZO, M. <strong>Jornalismo de revista</strong>. [S.l.]: Editora Contexto, 2003. ISBN 9788572442442.</li>
<li>SILVA, R. S. <strong>Diagramação: O planejamento visual gráfico na comunicação impressa</strong>. [S.l.]: Summus Editorial, 1985. ISBN 9788532302366.</li>
<li><strong>Tipografía para periódicos &#8211; letrag</strong>. Disponível em: &lt;http://es.letrag.com/artigo.php?id=11&gt;. Acesso em: 16 apr. 2011.</li>
<li>TRAQUINA, N. <strong>Jornalismo</strong>. [S.l.]: Quimera, 2002. ISBN 9789725890837.</li>
<li>WILLIAMS, R. <strong>Design para quem não é designer: noções básicas de planejamento visual</strong>. [S.l.]: Callis Editora Ltd, 2006. ISBN 9788574162386.</li>
<li>YARBUS, A. <strong>Eye movements and vision</strong>. New York: Plenum Press, 1967.</li>
</ol>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2007/06/15/bibliografia-sobre-jornalismo-online/" rel="bookmark" class="crp_title">Bibliografia sobre Jornalismo Online</a></li><li><a href="http://meiradarocha.jor.br/news/2008/08/12/nova-obra-fala-sobre-jornalismo-online-cidadao/" rel="bookmark" class="crp_title">Nova obra fala sobre jornalismo online cidadão</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/principios-e-elementos-do-design-2/" rel="bookmark" class="crp_title">Princípios e elementos do Design</a></li><li><a href="http://meiradarocha.jor.br/news/2008/08/15/manual-do-foca-guia-de-sobrevivencia-para-jornalistas/" rel="bookmark" class="crp_title">Manual do foca, guia de sobrevivência para jornalistas</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/links-sobre-diagramacao-e-planejamento-grafico-em-jornalismo/" rel="bookmark" class="crp_title">Links sobre Diagramação e Planejamento Gráfico em Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2007/08/10/zonas-de-visualizacao-da-pagina-impressa/" rel="bookmark" class="crp_title">Zonas de visualização da página impressa</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/11/preparando-o-acesso-do-scribus-ao-mysql/" rel="bookmark" class="crp_title">Preparando o acesso do Scribus ao MySQL</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/09/21/bibliografia-sobre-planejamento-grafico-de-jornais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Earth em Linux: como eliminar sombras nos balões</title>
		<link>http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/</link>
		<comments>http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 16:01:48 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Google Earth]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2160</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Google+Earth+em+Linux%3A+como+eliminar+sombras+nos+bal%C3%B5es&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Google+Earth&amp;rft.subject=Linux&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-08-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/&amp;rft.language=Portuguese"></span>
No GNU/Linux Ubuntu o Google Earth apresenta balões com sombras, se o efeito de sombra do gerenciador de janelas Compiz estiver habilitado. Veja o screenshot: Isto é visualmente desagradável. Para...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Google+Earth+em+Linux%3A+como+eliminar+sombras+nos+bal%C3%B5es&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Google+Earth&amp;rft.subject=Linux&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-08-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2160"><!-- &nbsp; --></abbr>
<p>No GNU/Linux Ubuntu o Google Earth apresenta balões com sombras, se o efeito de sombra do gerenciador de janelas Compiz estiver habilitado. Veja o <em>screenshot</em>:</p>
<div id="attachment_2162" class="wp-caption alignnone" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Google-Earth-1.png"><img class="size-medium wp-image-2162" title="Google Earth com sombra nos balões" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Google-Earth-1-300x208.png" alt="Google Earth com sombra nos balões" width="300" height="208" /></a><p class="wp-caption-text">Google Earth com sombra nos balões</p></div>
<p>Isto é visualmente desagradável.</p>
<p>Para eliminar o efeito de sombra apenas no Google Earth, abra o configurador do Compiz, e na aba &#8220;Efeitos &gt; Decoração de janelas&#8221;:</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Gerenciador-de-configura%C3%A7%C3%B5es-do-CompizConfig.png"><img class="alignnone size-medium wp-image-2163" title="Captura_de_tela-Gerenciador de configurações do CompizConfig" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Gerenciador-de-configura%C3%A7%C3%B5es-do-CompizConfig-300x201.png" alt="" width="300" height="201" /></a></p>
<p>Em &#8220;Janelas com sombras&#8221;, troque &#8220;any&#8221; por &#8220;!(name=googleearth-bin)&#8221;. Isto quer dizer &#8220;não coloque sombra na janela de nome &#8220;googleearth-bin&#8221;:</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Gerenciador-de-configura%C3%A7%C3%B5es-do-CompizConfig-1.png"><img class="alignnone size-medium wp-image-2164" title="Captura_de_tela-Gerenciador de configurações do CompizConfig-1" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Gerenciador-de-configura%C3%A7%C3%B5es-do-CompizConfig-1-300x201.png" alt="" width="300" height="201" /></a></p>
<p>Para instalar o configurador do Compiz, execute o comando no terminal:</p>
<pre>sudo apt-get install compizconfig-settings-manager</pre>
<p>Depois de aplicada a configuração, o resultado: balões sem sombras.</p>
<div id="attachment_2161" class="wp-caption alignnone" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Google-Earth.png"><img class="size-medium wp-image-2161" title="Google Earth sem sombra nos balões" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/Captura_de_tela-Google-Earth-300x208.png" alt="Google Earth sem sombra nos balões" width="300" height="208" /></a><p class="wp-caption-text">Google Earth sem sombra nos balões</p></div>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2007/10/09/game-tem-mapas-com-dados-geograficos-reais/" rel="bookmark" class="crp_title">Game tem mapas com dados geográficos reais</a></li><li><a href="http://meiradarocha.jor.br/news/2008/06/04/gp-singapura-em-3d-google-earth/" rel="bookmark" class="crp_title">GP Singapura em 3D Google Earth</a></li><li><a href="http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/" rel="bookmark" class="crp_title">Elementos da linguagem visual do Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2008/06/12/google-earth-estereoscopico-em-terceira-dimensao/" rel="bookmark" class="crp_title">Google Earth estereoscópico (em terceira dimensão)</a></li><li><a href="http://meiradarocha.jor.br/news/2007/09/30/coloque-avioes-no-google-earth/" rel="bookmark" class="crp_title">Coloque aviões no Google Earth</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/17/geanimator-script-python-para-gerar-animacoes-no-google-earth/" rel="bookmark" class="crp_title">GEanimator, script Python para gerar animações no Google Earth</a></li><li><a href="http://meiradarocha.jor.br/news/2007/09/24/google-earth-ja-mostra-fotos-panoramicas-esfericas/" rel="bookmark" class="crp_title">Google Earth já mostra fotos panorâmicas esféricas</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GEanimator, script Python para gerar animações no Google Earth</title>
		<link>http://meiradarocha.jor.br/news/2011/08/17/geanimator-script-python-para-gerar-animacoes-no-google-earth/</link>
		<comments>http://meiradarocha.jor.br/news/2011/08/17/geanimator-script-python-para-gerar-animacoes-no-google-earth/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 03:35:22 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Google Earth]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2123</guid>
		<description><![CDATA[Crie animações sofisticadas no Google Earth usando modelos 3D, caminhos e placemarks especiais.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=GEanimator%2C+script+Python+para+gerar+anima%C3%A7%C3%B5es+no+Google+Earth&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Google+Earth&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-08-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/08/17/geanimator-script-python-para-gerar-animacoes-no-google-earth/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2123"><!-- &nbsp; --></abbr>
<div id="attachment_2141" class="wp-caption alignright" style="width: 310px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/GEanimator-exemple.jpg"><img class="size-medium wp-image-2141   " title="GEanimator exemple: Riachuelo Battle mockup" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/GEanimator-exemple-300x250.jpg" alt="GEanimator exemple: Riachuelo Battle mockup" width="300" height="250" /></a><p class="wp-caption-text">Exemplo do GEanimator: editando maquete animada da Batalha do Riachuelo (Corrientes, AR, Guerra do Paraguai, 1865).</p></div>
<p>O <strong>Google Earth</strong> tem o recurso de &#8220;<em>tours</em>&#8220;, viagens pelo globo controladas pela <a href="https://code.google.com/intl/de-DE/apis/kml/documentation/kmlreference.html">linguagem KML</a>. No entanto, as ferramentas embutidas para a construção de <em>tours</em> são limitadíssimas dentro do próprio GE, e, em 2011, ainda não existe um editor externo para editar viagens. Atualmente, o gravador de <em>tour</em> do GE apenas gera uma sequência de pontos de vista, sem controle de tempo entre os pontos, sem recursos de animações, sem possibilidades de abrir e fechar balões de <em>placemarks</em>&#8230;</p>
<p>Para melhorar esta deficiência, criei um <em>script</em> para gerar animações e <em>tours</em> sofisticados com simples operações de cortar-colar. Publico aqui uma versão básica do scrip, usável mas com muito espaço para melhoramentos. Afinal, diz o ditado do software aberto: &#8220;release early, release often&#8221;.</p>
<p>O funcionamento é simples:<br />
<div id="attachment_2186" class="wp-caption alignright" style="width: 186px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/GEanimator-language.png"><img class="size-medium wp-image-2186" title="Exemplo de placemarks para animação pelo GEanimator" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/GEanimator-language-176x300.png" alt="Exemplo de placemarks para animação pelo GEanimator" width="176" height="300" /></a><p class="wp-caption-text">Exemplo de placemarks para animação pelo GEanimator</p></div></p>
<ol>
<li>Crie uma pasta com modelos DAE (feitos no <strong>SketchUp</strong>) e com <em>placemarks</em> com os caminhos que os modelos devem percorrer. Os modelos e os respectivos caminhos devem ter o mesmo nome. A pasta deve conter alguns <em>placemarks</em> com nomes especiais que controlam o passeio, além de <em>placemarks</em> opcionais. Estes nomes especiais formam uma espécie de <strong>linguagem de programação de passeios</strong>.</li>
<li>Copie a pasta.</li>
<li>Rode o script <strong>GEanimator</strong>.</li>
<li>Em menos de um segundo, o <em>script</em> pega os dados KML da memória <em>clipboard</em> do Windows, gera uma maquete animada completa, com o passeio, e coloca-a de volta no <em>clipboard</em>. Agora, basta colar no painel &#8220;Meus Lugares&#8221; do Google Earth e rodar o passeio.</li>
</ol>
<h3>Requistos</h3>
<p>Os requisitos para rodar o <em>script</em> é ter a <a href="http://www.python.org/getit/windows/">linguagem <strong>Python</strong></a>  e a <a href="http://sourceforge.net/projects/pywin32/files/pywin32/">extensão Python for Windows</a> corretamente instaladas. Usei a versão Python 2.7. A linha de comando, que pode ser colocada num atalho na barra de ferramentas de início rápido do Windows, é:</p>
<pre>c:\python27\python geanimator-2011-07-29a.py</pre>
<h3>Conceito</h3>
<p>O <em>script</em> trabalha com o conceito de <em>frames</em> ou passos de um passeio, mais ou menos como quadros de filmes. A diferença é que a duração dos <em>frames</em> pode ser variável. Quando são usados caminhos como rota de modelos 3D, cada ponto dos <em>placemarks</em> de caminho define um passo.</p>
<p>O processamento do código KML copiado se dá em dois momentos: primeiro, o código é analisado e são construídas estruturas de dados em <strong>Python</strong> com informações sobre modelos, frames etc. Depois, estas estruturas são usadas para se gerar um novo código KML com os modelos, balões e passeio.</p>
<p>Depois de colado de volta no Google Earth, a pasta resultante deve ser salva para distribuição. Isto também salva os modelos no arquivo KMZ.</p>
<p>A maneira que eu escolhi de passar parâmetros e controlar o <em>script</em> foi através do nomes especiais de <em>placemarks</em>. Neste caso, estes <em>placemarks</em> não são incorporados ao código KML resultante. Atualmente, são estes os <em>placemarks</em> especiais:</p>
<h3>MaxTourLen</h3>
<p>Define o número máximo de <em>frames</em> de um passeio. Formato do nome do <em>placemark</em>: MaxTourLen=número-de-quadros. Exemplo: MaxTourLen=200. Isto define um passeio com 200 frames. É um <em>placemark</em> obrigatório que deve ser colocado logo no início da pasta.</p>
<h3>Timeframe</h3>
<p>Define o tempo global dos <em>frames</em>, em segundos. Formato: Timeframe=seconds. Exemplo: Timeframe=3. Isto define em 3 segundos o tempo de cada <em>frame</em>. É um <em>placemark</em> opcional que deve ser colocado logo no início da pasta. Se não houver este <em>placemark</em>, será adotado um tempo <em>default</em> definido no <em>script</em>, na variável <strong>frameLen</strong>. O conteúdo textual dos balões de <em>placemark</em> também modifica a duração dos <em>frames</em>, para dar tempo de leitura. Quanto mais texto, maior a duração do <em>frame</em>, ou seja, mais tempo vai demorar na tela o balão de <em>placemark</em>.</p>
<h3>Step</h3>
<p>Modifica a duração de um <em>frame</em>. Formato: Step=frame-to-modify=seconds. Exemplo: Step=3=5. Isto faz o <em>frame</em> 3 durar 5 segundos.</p>
<h3>TurnOn</h3>
<p>Torna um modelo visível. Por <em>default</em>, os modelos estão invisíveis. Então, cada modelo deve ser explicitamente ligado no momento oportuno. Formato do nome do <em>placemark</em>: TurnOn=nome-do-modelo=quadro-inicial. Exemplo: TurnOn=Carro1=1. Este exemplo torna visível o modelo chamado Carro1 no quadro 1.</p>
<h3>TurnOff</h3>
<p>Torna um modelo invisível. Por <em>default</em>, os modelos estão invisíveis. Formato do nome do <em>placemark</em>: TurnOff=nome-do-modelo=quadro-inicial. Exemplo: TurnOff=Carro1=12. Este exemplo torna invisível o modelo chamado Carro1 no quadro 12.</p>
<h3>Pause</h3>
<p>Pausa um modelo durante os <em>frames</em> especificados. Formato: Pause=model=initial-frame=final-frame. Exemplo: Pause=Car1=5=10. Isto irá pausar o modelo chamado Car1 do <em>frame</em> 5 ao <em>frame</em> 10.</p>
<h3>FlyTo</h3>
<p>Define um ponto de vista para a câmera. O passeio irá &#8220;voar&#8221; para este ponto, de acordo com a visualização instantânea do <em>placemark</em>. Formato: FlyTo=frame=seconds. Exemplo: FlyTo=24=8. Isto irá criar um novo ponto de vista no quadro 24. A câmera irá se mover do quadro 23 ao 24 durante oito segundos. Evite colocar FlyTos e balões no mesmo <em>frame</em>, pois o balão ficará mudando de lugar durante o voo.</p>
<h3>Baloon</h3>
<p>Cria um <em>placemark</em> balão que é apresentado durante o tempo necessário para lê-lo. Formato: Baloon=frame=Title. Exemplo: Baloon=23=O trânsito será desviado neste ponto. Isto abrirá um balão no <em>frame</em> 23 com o título fornecido. Evite colocar  balões e FlyTos no mesmo <em>frame</em>, pois o balão ficará mudando de lugar durante o voo. O conteúdo textual dos balões de <em>placemark</em> modifica a duração dos <em>frames</em>, para dar tempo de leitura. Quanto mais texto, maior a duração do <em>frame</em>, ou seja, mais tempo vai demorar na tela o balão de <em>placemark</em>. Este tempo é controlado pela variável <em>readingSpeed</em> no <em>script</em>, que tem o valor de 18 caracteres por segundo.</p>
<h3>Fade</h3>
<p>Cria um <em>fade in</em> (a tela preta clareia) ou <em>fade out</em> (a tela escurece até fica preta) no quadro desejado durante o tempo determinado. Formato: Fade=[in|out]=frame=duration. Exemplo: Fade=in=1=5. Isto cria um <em>fade in</em> no frame 1 &#8212; início do passeio &#8212; durando 5 segundos. O <em>fade</em> é criado por um ScreenOverlay preto, sem imagem, ocupando toda a tela. A transição é feita diminuindo a zero ou aumentando a 255 o valor do canal alfa da cor. Very tricky!</p>
<h3>Timecode</h3>
<p>Uma <strong>pasta</strong> com este nome gera uma numeração no canto superior esquerdo da tela com o número dos <em>frames</em>, como timecode de vídeo, para auxiliar a edição. Não deve ser usado no produto final. Usa símbolos de <em>placemarks</em> padrão do Google Earth. Um bug do GE impede que os ícones sejam apresentados se não forem carregados antes. Eu tenho outra pasta só com os dez ícones, que ligo antes de ligar o código KML produzido pelo <em>script</em>. Se eles não aparecem, desligo a pasta do passeio, ligo a pasta dos ícones, fecho e abro de novo o GE.</p>
<h3>Modelos</h3>
<p>Os modelos são no formato DAE, feitos no Google SketchUp. Devem sempre ser construídos com a frente para o norte (eixo verde do SketchUp). <strong>Deficiência do Google Earth</strong>: os modelos podem ser girados de -360° a +360°. Quando a animação ultrapassa este valor, os modelos fazem um <em>wrap</em>, uma pirueta para o lado oposto complementar ao ângulo desejado.</p>
<p>Os <em>path placemarks</em> que definem a trajetória dos modelos devem ter o mesmo nome do modelo correspondente. Pode haver vários <em>paths</em> com o mesmo nome, desde que se nomeie-os como &#8220;modelo=1&#8243;, &#8220;modelo=2&#8243; etc. Eles resultarão em uma única trajetória.</p>
<h3>Download</h3>
<p>Baixe o script <a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/GEanimator-2011-07-29a.7z">GEanimator, versão 2011-07-29a. </a></p>
<h3>Exemplo</h3>
<p>Este exemplo, sem sincronização de câmeras, é uma prova do conceito. (Infelizmente, ainda não há plugin para Linux, só para Windows e Mac) (<a href="http://meiradarocha.jor.br/google-earth-lab/GE-tour.html">Veja em tela inteira</a>).</p>

	<div id="map3d" style="height: 420px;; width: 600px;"></div>  
      <div id ="tour-controls" style="margin:0;padding:0">
         <input type="button" onclick="enterTour()" value="Enter Tour"/>
         <input type="button" onclick="playTour()" value="Play Tour"/>
         <input type="button" onclick="pauseTour()" value="Pause Tour"/>
         <input type="button" onclick="resetTour()" value="Stop/Reset Tour"/>
         <input type="button" onclick="exitTour()" value="Exit Tour"/>
      </div>
<h3>Licença</h3>
<p>Este script é livre para uso não-comercial. Para uso comercial em sites jornalísticos ou empresas, consulte-me sobre licenciamento e treinamento online.</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2007/10/02/veja-o-atentado-ao-pentagono-no-google-earth/" rel="bookmark" class="crp_title">Veja o atentado ao Pentágono no Google Earth</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2007/09/30/coloque-avioes-no-google-earth/" rel="bookmark" class="crp_title">Coloque aviões no Google Earth</a></li><li><a href="http://meiradarocha.jor.br/news/2008/07/10/indesign-legendas-e-creditos-de-fotos-automaticamente/" rel="bookmark" class="crp_title">InDesign: legendas e créditos de fotos automaticamente</a></li><li><a href="http://meiradarocha.jor.br/news/2010/08/06/scribus-script-para-cortar-imagens-pelo-tamanho-do-quadro/" rel="bookmark" class="crp_title">Scribus: script para cortar imagens pelo tamanho do quadro</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/10/editoracao-com-software-livre-fotos-legendas-e-credito-automatizados-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: fotos, legendas e crédito automatizados no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/30/editoracao-com-software-livre-caixa-de-destaque-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: caixa de destaque no Scribus</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/08/17/geanimator-script-python-para-gerar-animacoes-no-google-earth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AI-5 digital, ameaça real à internet brasileira</title>
		<link>http://meiradarocha.jor.br/news/2011/08/12/ai-5-digital-ameaca-real-a-internet-brasileira/</link>
		<comments>http://meiradarocha.jor.br/news/2011/08/12/ai-5-digital-ameaca-real-a-internet-brasileira/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 01:48:08 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Direito]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2117</guid>
		<description><![CDATA[A lei pode criminalizar ações cotidianas como possuir um blog, fazer a digitalização de filmes e músicas e o desbloqueio de aparelhos celulares.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=AI-5+digital%2C+amea%C3%A7a+real+%C3%A0+internet+brasileira&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Direito&amp;rft.subject=Internet&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-08-12&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/08/12/ai-5-digital-ameaca-real-a-internet-brasileira/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2117"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/crimes_digitais-325x215.jpg"><img class="alignright size-medium wp-image-2118" title="crimes_digitais-325x215" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/08/crimes_digitais-325x215-300x198.jpg" alt="" width="300" height="198" /></a>Por <strong><a href="http://www.institutotelecom.com.br/index.php?option=com_content&amp;view=article&amp;id=2338%3Anossa-opiniao-da-semana-lei-azeredo-na-contramao-da-sociedade&amp;catid=1%3Alatest-news&amp;Itemid=2&amp;lang=pt">Instituto Telecom</a></strong></p>
<p>A polêmica do Projeto de Lei 84/99, que tipifica crimes na internet, teve início desde sua apresentação na Câmara. Apesar disso, quatro anos depois, em 2003, o PL foi aprovado e seguiu para o Senado, quando recebeu um texto substitutivo do então senador e atual deputado federal Eduardo Azeredo (PSDB/MG). Mais uma vez, o projeto não só foi aprovado no Senado como, reencaminhado para a Câmara, tramita agora em regime de urgência em cinco comissões: Ciência e Tecnologia; Comunicação e Informática; Constituição, Justiça e Cidadania; Segurança Pública e Combate ao Crime Organizado, de onde seguirá para votação no plenário.</p>
<p>Para os parlamentares contrários ao substitutivo,  neste momento resta apenas a possibilidade de apresentarem emendas supressivas às propostas aprovadas no Senado uma vez que, caso o texto seja rejeitado na íntegra, será validada a versão original aprovada em 2003. Já a sociedade civil e o setor acadêmico – partes diretamente afetadas pela lei – nem sequer foram convidadas a participar da decisão nestes 12 anos de debate.</p>
<p>Chamada de AI-5 Digital, pelas entidades civis contrárias à sua aprovação, a “Lei Azeredo” foi inspirada na Convenção de Budapeste, que tratou sobre o tema do cibercrime e foi assinada poucos meses após os atentados ao World Trade Center, em 2001. Por trás das justificativas para a aprovação da Convenção estava o interesse de grandes empresas e governos em acabar com a neutralidade da rede e, dessa forma, controlarem o acesso à internet.</p>
<p>Há alguns dias, numa tentativa de conter os prováveis estragos no direito à liberdade de expressão dos brasileiros, a deputada Luiza Erundina (PSB-SP) entrou em acordo com o deputado Eduardo Azeredo para que seja realizado um seminário sobre o assunto antes da votação do texto nas comissões. O requerimento para a audiência foi apresentado em 28 de julho, e ainda aguarda uma resposta.</p>
<p>Uma das principais críticas à lei é a sua abordagem generalizada. Segundo o Instituto Brasileiro de Defesa do Consumidor (Idec), se aprovada, a lei pode criminalizar ações cotidianas como possuir um blog, fazer a digitalização de filmes e músicas e o desbloqueio de aparelhos celulares. Atividades extremamente importantes para o desenvolvimento do país como as redes abertas (P2P), pesquisas e o uso de obras protegidas por copyright como fonte de informação e educação serão diretamente afetadas.</p>
<p>Um país que ainda não foi capaz de aprovar o Marco Civil para Internet, dificilmente tem a maturidade necessária para construir leis e regras capazes de determinarem o que pode ser considerado crime ou não na rede. O Marco Civil reivindicado pela sociedade trata de pontos que precedem em relevância o debate da Lei Azeredo, dentre eles o livre acesso à internet como direito básico, a neutralidade da rede, a criação de regras de responsabilidade civil para provedores e usuários e medidas capazes de preservarem a liberdade de expressão e a privacidade. Além de princípios e diretrizes para garantirem o bom funcionamento da rede.</p>
<p>Nós, do Instituto Telecom, defendemos que o Marco Civil da Internet deve ser aprovado antes de qualquer discussão que vise regular os conteúdos e dados da rede. É preciso ouvir todas as partes envolvidas para ser capaz de tomar decisões que podem mudar completamente o rumo e a liberdade do país. A decisão da sociedade civil é pela não aprovação desta lei. Isto está mais do que claro. Só na última semana, o deputado Emiliano José (PT-BA) apresentou ao presidente da Comissão de Ciência e Tecnologia, deputado Bruno Araújo (PSDB-PE), uma petição contrária à proposta sobre crimes na internet com 163 assinaturas de representantes dos setores empresarial, civil e acadêmico.</p>
<p>O Brasil não pode, de forma alguma, retroceder nas conquistas duramente alcançadas pela sociedade após décadas de ditadura. Aprovar a Lei Azeredo sem levar em conta os argumentos contrários e os desejos da sociedade, é levar o país a um novo AI-5.</p>
<p><em>Publicado em <a href="http://ponto.outraspalavras.net/2011/08/12/nossa-opiniao-da-semana-%E2%80%9Clei-azeredo%E2%80%9D-na-contramao-da-sociedade/">Outras Palavras</a>.</em></p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2008/07/16/governo-brasileiro-vai-estimular-producao-digital/" rel="bookmark" class="crp_title">Governo brasileiro vai estimular produção digital</a></li><li><a href="http://meiradarocha.jor.br/news/2011/01/18/empresas-jornalisticas-sao-cumplices-em-vigarice-de-bilhoes-de-reais/" rel="bookmark" class="crp_title">Empresas jornalísticas são cúmplices em vigarice de bilhões de reais</a></li><li><a href="http://meiradarocha.jor.br/news/2008/03/18/a-verdade-sobre-as-cotas-nacionais-na-tv-por-assinatura/" rel="bookmark" class="crp_title">A verdade sobre as cotas nacionais na TV por assinatura</a></li><li><a href="http://meiradarocha.jor.br/news/2008/09/08/uma-forma-de-democracia-direta-e-algo-que-hoje-pode-ser-tecnologicamente-possivel/" rel="bookmark" class="crp_title">&#8216;Uma forma de democracia direta é algo que hoje pode ser tecnologicamente possível&#8217;</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/04/adsl-com-acesso-gratis-ou-quase/" rel="bookmark" class="crp_title">ADSL com acesso grátis (ou quase)</a></li><li><a href="http://meiradarocha.jor.br/news/2008/05/23/polibio-braga-ataca-unisinos-com-odi/" rel="bookmark" class="crp_title">Políbio Adolfo Braga ataca Unisinos com ódio</a></li><li><a href="http://meiradarocha.jor.br/news/2007/12/22/intel-classmate-o-laptop-do-projeto-uca/" rel="bookmark" class="crp_title">Intel Classmate, o laptop do projeto UCA?</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/08/12/ai-5-digital-ameaca-real-a-internet-brasileira/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como converter imagens RGB para CMYK em GNU/Linux</title>
		<link>http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/</link>
		<comments>http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 01:43:21 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Editoração]]></category>
		<category><![CDATA[PageMaker]]></category>
		<category><![CDATA[Scribus]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2087</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+converter+imagens+RGB+para+CMYK+em+GNU%2FLinux&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Editora%C3%A7%C3%A3o&amp;rft.subject=PageMaker&amp;rft.subject=Scribus&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-06-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/&amp;rft.language=Portuguese"></span>
Para trabalhos impressos, pode ser necessário trabalhar com imagens no espaço de cor CMYK, em vez de RGB, especialmente se não se usa o Scribus. A conversão do formato RGB...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+converter+imagens+RGB+para+CMYK+em+GNU%2FLinux&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Editora%C3%A7%C3%A3o&amp;rft.subject=PageMaker&amp;rft.subject=Scribus&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-06-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2087"><!-- &nbsp; --></abbr>
<p>Para trabalhos impressos, pode ser necessário trabalhar com imagens no espaço de cor CMYK, em vez de RGB, especialmente se não se usa o Scribus. A conversão do formato RGB para CMYK pode ser feita com o pacote ImageMagick, através do utilitário &#8216;<strong>convert</strong>&#8216;:</p>
<pre>convert catwoman.tif -profile ~/.color/icc/CMYK/UncoatedFOGRA29.icc catwoman-cmyk.tif</pre>
<p>Os perfis de cor pessoais ficam na pasta ~/.color/icc/. Baixe <a href="ftp://ftp.adobe.com/pub/adobe/iccprofiles/win/AdobeICCProfilesCS4Win_end-user.zip">perfis de cor da Adobe</a> e descompacte-os nesta pasta. Use um perfil para cada tipo de papel (offset comum, couché, couché fosco, papel jornal, etc).</p>
<p>O resultado é uma imagem CMYK com perfil de cor embutido. Muito próximo ao obtido pelo Scribus. As imagens abaixo mostram as diferenças de imagem nos espaços de cor CMYK e RGB no <em>preview</em> de impressão do Scribus.</p>
<p>Só funciona bem a conversão para imagens TIFF, pois JPG não usa espaço de cor CMYK, mas YCrCb (ver comentário depois deste artigo).</p>
<div id="attachment_2090" class="wp-caption alignnone" style="width: 296px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/black-plate.jpg"><img class="size-medium wp-image-2090" title="Saída da tinta preta, sem perfil de cor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/black-plate-286x300.jpg" alt="Saída da tinta preta, sem perfil de cor" width="286" height="300" /></a><p class="wp-caption-text">Saída da tinta preta, sem perfil de cor.</p></div>
<div id="attachment_2091" class="wp-caption alignnone" style="width: 288px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/black-plate2.jpg"><img class="size-medium wp-image-2091" title="Saída da tinta preta, perfil de cor processado." src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/black-plate2-278x300.jpg" alt="Saída da tinta preta, perfil de cor processado." width="278" height="300" /></a><p class="wp-caption-text">Saída da tinta preta, perfil de cor processado.</p></div>
<div id="attachment_2092" class="wp-caption alignnone" style="width: 296px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/cmy-plate.jpg"><img class="size-medium wp-image-2092" title="Saída de ciano, amarelo e magenta, sem perfil de cor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/cmy-plate-286x300.jpg" alt="Saída de ciano, amarelo e magenta, sem perfil de cor" width="286" height="300" /></a><p class="wp-caption-text">Saída de ciano, amarelo e magenta, sem perfil de cor</p></div>
<div id="attachment_2093" class="wp-caption alignnone" style="width: 290px"><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/cmy-plate2.jpg"><img class="size-medium wp-image-2093" title="Saída de ciano, amarelo e magenta, perfil de cor processado." src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/06/cmy-plate2-280x300.jpg" alt="Saída de ciano, amarelo e magenta, perfil de cor processado." width="280" height="300" /></a><p class="wp-caption-text">Saída de ciano, amarelo e magenta, perfil de cor processado.</p></div>
<p>Como se pode ver, a saída da foto TIFF CMYK (foto superior) é praticamente igual à saída JPG RGB (foto inferior), no preview do Scribus, denotando que o ImageMagick faz uma boa conversão.</p>
<h3>Conversão CMYK em Python</h3>
<p>Programaticamente, posso fazer a conversão com a <a href="http://www.pythonware.com/products/pil/">Python Image Library (PIL) 1.1.7</a>, que já incorpora interface com o littlecms, sistema gerenciador de cores (CMS) de código aberto. Essa biblioteca não é instalada por default em Python. É necessário baixá-la e instalá-la.</p>
<pre># Importo os módulos PIL
import Image
import ImageCms
# carrego a imagem
encoding = sys.getfilesystemencoding()
file = 'fotão.jpg'
image = Image.open(file.encode(encoding)) # encode to let PIL handle accented filenames
# Crio a transformação com perfis de cor
# Estes caminhos são para Windows.
# No Linux, os perfis ficam em /usr/share/color/icc ou ~/color/icc
# é preciso saber exatamente o perfil de cor original da imagem
transform = ImageCms.buildTransform(
'c:\WINDOWS\system32\spool\drivers\color\AdobeRGB1998.icc',
'c:\WINDOWS\system32\spool\drivers\color\ISOuncoated.icc',
"RGB", "CMYK", ImageCms.INTENT_PERCEPTUAL
)
# Aplico a transformação à imagem.
# O comando PIL "image = image.convert('CMYK')" não pode ser usado porque
# não trabalha com perfis de cores e não gera a chapa de preto,
# cria preto com 100% Ciano, 100% Magenta e 100% Yellow.
image = applyTransform(image, transform, inPlace=1)
# Salvo a imagem a 300 dpi
file2 = 'fotão.tiff' # Não use JPEG para imagens CMYK
image.save(file2.encode(encoding),dpi=(300,300))</pre>
<h3>Esqueça conversão: use o Scribus</h3>
<p>O Scribus não precisa disto, porque converte RGB para CMYK automaticamente (embute perfis de cor na saída PDF/X-3). Mas outros programas, como PageMaker, precisam de imagens já no espaço de cor CMYK, para impressão.</p>
<h3>Bibliografia</h3>
<ul>
<li><strong>RGB para CMYK</strong>. &lt;<a href="http://community.linuxmint.com/tutorial/view/195">http://community.linuxmint.com/tutorial/view/195</a>&gt;</li>
<li><strong>Converter RGB para CMYK</strong>. Gráfica Livre. http://www.graficalivre.com.br/blog/18-converter-rgb-para-cmyk.html?showall=1</li>
<li><a href="http://saratrice.com/2010/11/03/imagemagick-convert-color-profile-operates-on-another-colorspace-icc/" rel="bookmark">ImageMagick: “convert: color profile operates on another colorspace `icc’”</a> &lt;http://saratrice.com/2010/11/03/imagemagick-convert-color-profile-operates-on-another-colorspace-icc/&gt;.</li>
<li><strong>Código fonte do módulo PIL ImageCms</strong>: c:\Python27\Lib\site-packages\PIL\ImageCms.py</li>
<li><strong>Instalar perfis de cores no Linux, Mac e Windows</strong>. Gráfica Livre. http://www.graficalivre.com.br/blog/19-instalar-perfis-icc-no-linux-mac-e-windows.html</li>
</ul>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2010/08/06/scribus-script-para-cortar-imagens-pelo-tamanho-do-quadro/" rel="bookmark" class="crp_title">Scribus: script para cortar imagens pelo tamanho do quadro</a></li><li><a href="http://meiradarocha.jor.br/news/2011/01/05/como-instalar-interface-grafica-ttk-no-python-do-scribus/" rel="bookmark" class="crp_title">Como instalar interface gráfica ttk no Python do Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2010/05/17/criar-publicacao-e-paginas-com-scribus/" rel="bookmark" class="crp_title">Como criar publicação e páginas com Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/10/editoracao-com-software-livre-fotos-legendas-e-credito-automatizados-no-scribus/" rel="bookmark" class="crp_title">Editoração com software livre: fotos, legendas e crédito automatizados no Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/" rel="bookmark" class="crp_title">Elementos da linguagem visual do Jornalismo</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/06/28/como-converter-imagens-rgb-para-cmyk-em-gnulinux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como instalar o leitor de smart card do Banrisul no Ubuntu 11.04</title>
		<link>http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/</link>
		<comments>http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/#comments</comments>
		<pubDate>Sun, 15 May 2011 21:54:58 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2061</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+instalar+o+leitor+de+smart+card+do+Banrisul+no+Ubuntu+11.04&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Linux&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-05-15&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/&amp;rft.language=Portuguese"></span>
Em alguns países, como Grã-Bretanha e Holanda, fraudes bancárias são responsabilidade dos correntistas, que normalmente arcam com os prejuízos. No Brasil, são responsabilidade dos bancos. Qualquer fraude em conta bancária...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+instalar+o+leitor+de+smart+card+do+Banrisul+no+Ubuntu+11.04&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Linux&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-05-15&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2061"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/05/teo_by_xiring.jpg"><img class="alignright size-medium wp-image-2065" title="teo_by_xiring" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/05/teo_by_xiring-209x300.jpg" alt="" width="209" height="300" /></a>Em alguns países, como Grã-Bretanha e Holanda, fraudes bancárias são responsabilidade dos correntistas, que normalmente arcam com os prejuízos. No Brasil, são responsabilidade dos bancos. Qualquer fraude em conta bancária deve ser coberta pelos bancos. No máximo, o correntista se incomoda um pouco. Isto gera uma grande segurança em se fazer transações bancárias pela internet e leva o Brasil a ter uma tecnologia de segurança bancária de ponta.</p>
<p>O lado ruim disso é que os bancos inventam dispositivos bancários cada vez mais complicados. O Banco do Estado do Rio Grande do Sul, por exemplo, abandonou o terrível sistema Sniper, que vivia dando problema em Windows, em favor de um <em>smart card</em>. Os correntistas recebem um leitor de cartão inteligente USB Teo, da chinesa Xiring, cujo driver é instalado automaticamente no Windows.</p>
<p>No Linux Ubuntu, a gente deve instalar à mão este driver, embora o leitor USB seja reconhecido pelo kernel do Linux. Verifique com o comando &#8220;lsusb&#8221;. O resultado deve aparecer como uma linha assim, entre outras:</p>
<pre>Bus 004 Device 003: ID 04e6:5410 SCM Microsystems, Inc. SCR35xx Smart Card Reader</pre>
<p>Se o hardware foi reconhecido, agora devemos instalar o software. O comando é este:</p>
<pre>sudo apt-get install libpcsclite1 pcscd pcsc-tools libccid</pre>
<p>Esta linha de comando deve instalar todos os programas e dependências necessários<strong> </strong>.</p>
<p>O <strong>pcscd</strong> é um <em>daemon</em>, isto é, um programa que roda no fundo, não aparece. Ele é carregado e roda automaticamente pelo sistema de <em>autostart</em> do Unix System V (scripts em /etc/init.d/).</p>
<p>Para acessar o certificado presente em um cartão inserido na leitora, pelo <em>browser</em> Mozilla  ou Firefox, instale o pacote:</p>
<pre>sudo apt-get install opensc mozilla-opensc</pre>
<p>Não pesquisei a função destes programas e consegui acessar ao Banrisul sem eles. Mas é necessário ter o <em>plugin</em> Java instalado no navegador para certificar-se no Banrisul.</p>
<h3>Bibliografia</h3>
<ul>
<li><a href="http://www.banrisul.com.br/bob/link/bobw00hw_produto_detalhe.asp?secao_id=1499"><strong>Banrisul. Leitora Smart Card Teo by Xiring.</strong></a></li>
<li><strong><a href="http://www.infoestrutura.com.br/basedeconhecimento/index.htm">Suporte técnico Xiring</a></strong></li>
<li><strong><a href="http://www.infoestrutura.com.br/">Informações sobre Teo Xiring.</a></strong></li>
</ul>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/" rel="bookmark" class="crp_title">Como configurar servidor xrdp no Ubuntu</a></li><li><a href="http://meiradarocha.jor.br/news/2008/05/25/melhorando-o-ubuntu-804-no-acer-4520/" rel="bookmark" class="crp_title">Melhorando o Ubuntu 8.04 no Acer 4520</a></li><li><a href="http://meiradarocha.jor.br/news/2010/09/03/estilo-abnt-para-o-zotero/" rel="bookmark" class="crp_title">Estilo ABNT para o Zotero</a></li><li><a href="http://meiradarocha.jor.br/news/2008/04/25/postando-de-uma-maquina-virtual-sugar-no-ubuntu-804/" rel="bookmark" class="crp_title">Postando de uma maquina virtual Sugar no Ubuntu 8.04</a></li><li><a href="http://meiradarocha.jor.br/news/2009/01/25/configurar-modem-agere-hda-do-laptop-acer-4520-no-ubuntu-810/" rel="bookmark" class="crp_title">Configurar modem Agere HDA do laptop Acer 4520 no Ubuntu 8.10</a></li><li><a href="http://meiradarocha.jor.br/news/2010/11/15/instalar-controle-remoto-pixelview-playtv-pro-linux/" rel="bookmark" class="crp_title">Como instalar o controle remoto PixelView PlayTV Pro no Linux</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/26/como-instalar-pyqt-no-windows/" rel="bookmark" class="crp_title">Como instalar PyQt 4.2 no Scribus Windows</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Como configurar servidor xrdp no Ubuntu</title>
		<link>http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/</link>
		<comments>http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/#comments</comments>
		<pubDate>Fri, 06 May 2011 23:23:50 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2047</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+configurar+servidor+xrdp+no+Ubuntu&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-05-06&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/&amp;rft.language=Portuguese"></span>
Um grupo desenvolve o xrdp, um servidor de Remote Desktop Protocol para ambiente Linux. Este protocolo desenvolvido pela Microsoft permite controlar um computador remotamente através de interface gráfica, com um...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+configurar+servidor+xrdp+no+Ubuntu&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-05-06&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2047"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/05/xrdp.jpg"><img class="alignright size-medium wp-image-2049" title="xrdp" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/05/xrdp-300x194.jpg" alt="" width="300" height="194" /></a>Um grupo desenvolve o <a href="http://sourceforge.net/project/screenshots.php?group_id=112022"><strong>xrdp</strong></a>, um servidor de <a href="http://pt.wikipedia.org/wiki/Remote_Desktop_Protocol">Remote Desktop Protocol</a> para ambiente Linux. Este protocolo desenvolvido pela Microsoft permite controlar um computador remotamente através de interface gráfica, com um cliente RDP em Windows, Macintosh ou Linux.</p>
<p>No Linux, o servidor <strong>xrdp</strong> permite a conexão de vários usuários ao mesmo tempo, diferentemente do RDP Windows, que só permite um usuário por vez. Outra vantagem do pinguim.</p>
<p>Instala-se o servidor <strong>xrdp</strong> no Linux Debian com o seguinte comando:</p>
<pre>sudo apt-get install xrdp</pre>
<p>Mas o <strong>xrdp</strong> vem com poucas opções de layout de teclado. Em um sistema português brasileiro, o teclado fica em inglês norte-americano, sem acentuação nem cedilha ou caracteres especiais.</p>
<p>Para se instalar o mapa de teclado brasileiro, deve-se rodar o comando (na versão 0.5.0):</p>
<pre>sudo xrdp-genkeymap /etc/xrdp/km-0416.ini</pre>
<p>Isto gera automaticamente a tabela de teclas, suponho que conforme o teclado atual do seu sistema. O número 416 é o padronizado para o mapa de teclado ABNT brasileiro. Para descobrir o mapas de outros países, veja a tabela conforme <a href="http://xrdp.sourceforge.net/documents/keymap/rfc1766.html">RFC1766</a>.</p>
<p>Para instalações que não têm o xrdp-genkeymap, aqui está o arquivo:</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/05/km-0416.ini_.zip">km-0416.ini</a></p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2008/04/25/postando-de-uma-maquina-virtual-sugar-no-ubuntu-804/" rel="bookmark" class="crp_title">Postando de uma maquina virtual Sugar no Ubuntu 8.04</a></li><li><a href="http://meiradarocha.jor.br/news/2007/07/01/documento-e-editor-hipertexto-wiki-e-web-server-ao-mesmo-tempo/" rel="bookmark" class="crp_title">Documento é editor hipertexto, wiki e web server ao mesmo tempo</a></li><li><a href="http://meiradarocha.jor.br/news/2011/01/05/como-instalar-interface-grafica-ttk-no-python-do-scribus/" rel="bookmark" class="crp_title">Como instalar interface gráfica ttk no Python do Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2007/10/09/game-tem-mapas-com-dados-geograficos-reais/" rel="bookmark" class="crp_title">Game tem mapas com dados geográficos reais</a></li><li><a href="http://meiradarocha.jor.br/news/2011/05/15/como-instalar-o-leitor-de-smart-card-do-banrisul-no-ubuntu-11-04/" rel="bookmark" class="crp_title">Como instalar o leitor de smart card do Banrisul no Ubuntu 11.04</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2009/01/23/abrindo-portas-ip-para-emule-e-skype-automaticamente/" rel="bookmark" class="crp_title">Abrindo portas IP para eMule e Skype automaticamente com UPnP</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/05/06/como-configurar-servidor-xrdp-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Como ler documentos do BrOffice por scripts no Scribus</title>
		<link>http://meiradarocha.jor.br/news/2011/04/01/como-ler-documentos-do-broffice-por-scripts-do-scribus/</link>
		<comments>http://meiradarocha.jor.br/news/2011/04/01/como-ler-documentos-do-broffice-por-scripts-do-scribus/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 15:02:10 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=2007</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+ler+documentos+do+BrOffice+por+scripts+no+Scribus&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-04-01&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/04/01/como-ler-documentos-do-broffice-por-scripts-do-scribus/&amp;rft.language=Portuguese"></span>
O Scribus importa documentos de texto do BrOffice / LibreOffice / OpenOffice.org, mas apenas manualmente, pelo menu &#8220;Arquivo &#62; Abrir&#8221;. Se quiser importar por script, em alguma tarefa automatizada, tenho que...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Como+ler+documentos+do+BrOffice+por+scripts+no+Scribus&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Geral&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-04-01&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/04/01/como-ler-documentos-do-broffice-por-scripts-do-scribus/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=2007"><!-- &nbsp; --></abbr>
<p><img class="alignright size-medium wp-image-2018" title="brooffice3" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/04/brooffice3-300x200.jpg" alt="" width="300" height="200" />O Scribus importa documentos de texto do BrOffice / LibreOffice / OpenOffice.org, mas apenas manualmente, pelo menu &#8220;Arquivo &gt; Abrir&#8221;. Se quiser importar por <em>script</em>, em alguma tarefa automatizada, tenho que usar o módulo Python apropriado.</p>
<p>Este módulo é o <strong>OOoPy</strong>, cujo projeto reside em http://sourceforge.net/projects/ooopy/.</p>
<p><span style="color: #ff0000;">[N. do autor: artigo em expansão]</span></p>
<p>Para baixar e instalar o módulo OOoPy no Python de meu Ubuntu, abri o terminal e usei os seguintes comandos:</p>
<pre>wget http://ufpr.dl.sourceforge.net/project/ooopy/ooopy/1.6.7680/OOoPy-1.6.7680.tar.gz
tar -vzxf ./OOoPy-1.6.7680.tar.gz
cd ./OOoPy-1.6.7680
sudo python setup.py install</pre>
<p>Devo ajustar os números da versão mais nova, se tentar isto futuramente.</p>
<p>O resultado da instalação, no Ubuntu, deve ser algo como:</p>
<pre>running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/ooopy
copying ooopy/Transformer.py -&gt; build/lib.linux-i686-2.6/ooopy
copying ooopy/OOoPy.py -&gt; build/lib.linux-i686-2.6/ooopy
copying ooopy/Version.py -&gt; build/lib.linux-i686-2.6/ooopy
copying ooopy/Transforms.py -&gt; build/lib.linux-i686-2.6/ooopy
copying ooopy/__init__.py -&gt; build/lib.linux-i686-2.6/ooopy
running build_scripts
creating build/scripts-2.6
copying and adjusting ooo_as_text -&gt; build/scripts-2.6
copying and adjusting ooo_cat -&gt; build/scripts-2.6
copying and adjusting ooo_fieldreplace -&gt; build/scripts-2.6
copying ooo_grep -&gt; build/scripts-2.6
copying and adjusting ooo_mailmerge -&gt; build/scripts-2.6
changing mode of build/scripts-2.6/ooo_as_text from 644 to 755
changing mode of build/scripts-2.6/ooo_cat from 644 to 755
changing mode of build/scripts-2.6/ooo_fieldreplace from 644 to 755
changing mode of build/scripts-2.6/ooo_mailmerge from 644 to 755
running install_lib
creating /usr/local/lib/python2.6/dist-packages/ooopy
copying build/lib.linux-i686-2.6/ooopy/Transformer.py -&gt; /usr/local/lib/python2.6/dist-packages/ooopy
copying build/lib.linux-i686-2.6/ooopy/OOoPy.py -&gt; /usr/local/lib/python2.6/dist-packages/ooopy
copying build/lib.linux-i686-2.6/ooopy/Version.py -&gt; /usr/local/lib/python2.6/dist-packages/ooopy
copying build/lib.linux-i686-2.6/ooopy/Transforms.py -&gt; /usr/local/lib/python2.6/dist-packages/ooopy
copying build/lib.linux-i686-2.6/ooopy/__init__.py -&gt; /usr/local/lib/python2.6/dist-packages/ooopy
byte-compiling /usr/local/lib/python2.6/dist-packages/ooopy/Transformer.py to Transformer.pyc
byte-compiling /usr/local/lib/python2.6/dist-packages/ooopy/OOoPy.py to OOoPy.pyc
byte-compiling /usr/local/lib/python2.6/dist-packages/ooopy/Version.py to Version.pyc
byte-compiling /usr/local/lib/python2.6/dist-packages/ooopy/Transforms.py to Transforms.pyc
byte-compiling /usr/local/lib/python2.6/dist-packages/ooopy/__init__.py to __init__.pyc
running install_scripts
copying build/scripts-2.6/ooo_cat -&gt; /usr/local/bin
copying build/scripts-2.6/ooo_mailmerge -&gt; /usr/local/bin
copying build/scripts-2.6/ooo_fieldreplace -&gt; /usr/local/bin
copying build/scripts-2.6/ooo_as_text -&gt; /usr/local/bin
copying build/scripts-2.6/ooo_grep -&gt; /usr/local/bin
changing mode of /usr/local/bin/ooo_cat to 755
changing mode of /usr/local/bin/ooo_mailmerge to 755
changing mode of /usr/local/bin/ooo_fieldreplace to 755
changing mode of /usr/local/bin/ooo_as_text to 755
changing mode of /usr/local/bin/ooo_grep to 755
running install_data
creating /usr/local/share/ooopy
copying test.sxw -&gt; /usr/local/share/ooopy
copying carta.stw -&gt; /usr/local/share/ooopy
copying test.odt -&gt; /usr/local/share/ooopy
copying carta.odt -&gt; /usr/local/share/ooopy
copying rechng.sxw -&gt; /usr/local/share/ooopy
copying rechng.odt -&gt; /usr/local/share/ooopy
copying run_doctest.py -&gt; /usr/local/share/ooopy
copying x.csv -&gt; /usr/local/share/ooopy
running install_egg_info
Writing /usr/local/lib/python2.6/dist-packages/OOoPy-1.6.7680.egg-info</pre>
<p>Para baixar e instalar no Windows, é mais complicado. Como eu tenho o baixador wget e o compactador 7z, a sequência de comandos que usei foi:</p>
<pre>wget http://ufpr.dl.sourceforge.net/project/ooopy/ooopy/1.6.7680/OOoPy-1.6.7680.tar.gz
"%PROGRAMFILES%"\7-Zip\7z.exe x OOoPy-1.6.7680.tar.gz
"%PROGRAMFILES%"\7-Zip\7z.exe x -o"%PROGRAMFILES%"\"Scribus 1.3.9"\lib\site-packages\ OOoPy-1.6.7680.tar
del OOoPy-1.6.7680.tar</pre>
<p>Executei o arquivo setup.py pelo Scribus Scripter (menu &#8220;Scrip &gt; Executar script..&#8221;, procurei o arquivo em %PROGRAMFILES%&#8221;\&#8221;Scribus 1.3.9&#8243;\lib\site-packages\OOoPy-1.6.7680\setup.py).</p>
<p>A seguir, copiei a pasta <strong>%PROGRAMFILES%&#8221;\&#8221;Scribus 1.3.9&#8243;\lib\site-packages\OOoPy-1.6.7680\ooopy\</strong> para a pasta <strong>%PROGRAMFILES%&#8221;\&#8221;Scribus 1.3.9&#8243;\lib\site-packages</strong>. Este método é meio gambiarra, pois não cria o arquivo egg-info padrão criado no Linux.</p>
<p>Outra opção é instalar o módulo no Python padrão e copiar os arquivos instalados para o Python do Scribus:</p>
<pre>c:\&gt;cd "c:\Python26\Lib\site-packages\OOoPy-1.6.7680\"

C:\Python26\Lib\site-packages\OOoPy-1.6.7680&gt;c:\Python26\python.exe setup.py install
running install
running build
running build_py
creating build
creating build\lib
creating build\lib\ooopy
copying ooopy\OOoPy.py -&gt; build\lib\ooopy
copying ooopy\Transformer.py -&gt; build\lib\ooopy
copying ooopy\Transforms.py -&gt; build\lib\ooopy
copying ooopy\Version.py -&gt; build\lib\ooopy
copying ooopy\__init__.py -&gt; build\lib\ooopy
running build_scripts
creating build\scripts-2.6
copying and adjusting ooo_as_text -&gt; build\scripts-2.6
copying and adjusting ooo_cat -&gt; build\scripts-2.6
copying and adjusting ooo_fieldreplace -&gt; build\scripts-2.6
copying ooo_grep -&gt; build\scripts-2.6
copying and adjusting ooo_mailmerge -&gt; build\scripts-2.6
running install_lib
creating c:\Python26\Lib\site-packages\ooopy
copying build\lib\ooopy\OOoPy.py -&gt; c:\Python26\Lib\site-packages\ooopy
copying build\lib\ooopy\Transformer.py -&gt; c:\Python26\Lib\site-packages\ooopy
copying build\lib\ooopy\Transforms.py -&gt; c:\Python26\Lib\site-packages\ooopy
copying build\lib\ooopy\Version.py -&gt; c:\Python26\Lib\site-packages\ooopy
copying build\lib\ooopy\__init__.py -&gt; c:\Python26\Lib\site-packages\ooopy
byte-compiling c:\Python26\Lib\site-packages\ooopy\OOoPy.py to OOoPy.pyc
byte-compiling c:\Python26\Lib\site-packages\ooopy\Transformer.py to Transformer.pyc
byte-compiling c:\Python26\Lib\site-packages\ooopy\Transforms.py to Transforms.pyc
byte-compiling c:\Python26\Lib\site-packages\ooopy\Version.py to Version.pyc
byte-compiling c:\Python26\Lib\site-packages\ooopy\__init__.py to __init__.pyc
running install_scripts
copying build\scripts-2.6\ooo_as_text -&gt; c:\Python26\Scripts
copying build\scripts-2.6\ooo_cat -&gt; c:\Python26\Scripts
copying build\scripts-2.6\ooo_fieldreplace -&gt; c:\Python26\Scripts
copying build\scripts-2.6\ooo_grep -&gt; c:\Python26\Scripts
copying build\scripts-2.6\ooo_mailmerge -&gt; c:\Python26\Scripts
running install_data
creating c:\Python26\share
creating c:\Python26\share\ooopy
copying test.sxw -&gt; c:\Python26\share\ooopy
copying carta.stw -&gt; c:\Python26\share\ooopy
copying test.odt -&gt; c:\Python26\share\ooopy
copying carta.odt -&gt; c:\Python26\share\ooopy
copying rechng.sxw -&gt; c:\Python26\share\ooopy
copying rechng.odt -&gt; c:\Python26\share\ooopy
copying run_doctest.py -&gt; c:\Python26\share\ooopy
copying x.csv -&gt; c:\Python26\share\ooopy
running install_egg_info
Writing c:\Python26\Lib\site-packages\OOoPy-1.6.7680-py2.6.egg-info</pre>
<p>&nbsp;</p>
<p>Para saber como funciona o módulo OOoPy, usei, pelo console do Scripter Scribus, os comandos:</p>
<pre>from ooopy.OOoPy import OOoPy
help (OOoPy)
from ooopy.Transformer import Transformer
help (Transformer)</pre>
<p>No Ubuntu 10, tenho que inserir os <em>paths</em> antes de usar este código, devido a um bug do próprio Ubuntu:</p>
<pre>sys.path.insert(0,'/usr/lib/python2.6/')
sys.path.insert(0,'')</pre>
<h3>Help do OOoPy</h3>
<p>Help on class OOoPy in module ooopy.OOoPy:</p>
<p>class OOoPy(autosuper)<br />
|  Wrapper for OpenOffice.org zip files (all OOo documents are<br />
|  really zip files internally).<br />
|<br />
|  from ooopy.OOoPy import OOoPy<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = &#8216;out.sxw&#8217;)<br />
|  &gt;&gt;&gt; o.mimetype<br />
|  &#8216;application/vnd.sun.xml.writer&#8217;<br />
|  &gt;&gt;&gt; for f in files :<br />
|  &#8230;     e = o.read (f)<br />
|  &#8230;     e.write ()<br />
|  &#8230;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;test.odt&#8217;, outfile = &#8216;out2.odt&#8217;)<br />
|  &gt;&gt;&gt; o.mimetype<br />
|  &#8216;application/vnd.oasis.opendocument.text&#8217;<br />
|  &gt;&gt;&gt; for f in files :<br />
|  &#8230;     e = o.read (f)<br />
|  &#8230;     e.write ()<br />
|  &#8230;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;out2.odt&#8217;)<br />
|  &gt;&gt;&gt; for f in o.izip.infolist () :<br />
|  &#8230;     print f.filename, f.create_system<br />
|  mimetype 0<br />
|  content.xml 0<br />
|  styles.xml 0<br />
|  meta.xml 0<br />
|  settings.xml 0<br />
|  META-INF/manifest.xml 0<br />
|  Configurations2/statusbar/ 0<br />
|  Configurations2/accelerator/current.xml 0<br />
|  Configurations2/floater/ 0<br />
|  Configurations2/popupmenu/ 0<br />
|  Configurations2/progressbar/ 0<br />
|  Configurations2/menubar/ 0<br />
|  Configurations2/toolbar/ 0<br />
|  Configurations2/images/Bitmaps/ 0<br />
|  Thumbnails/thumbnail.png 0<br />
|  &gt;&gt;&gt; for f in o.izip.infolist () :<br />
|  &#8230;     print f.filename, f.compress_type, f.compress_size, f.file_size<br />
|  mimetype 8 41 39<br />
|  content.xml 8 1930 16212<br />
|  styles.xml 8 1888 12743<br />
|  meta.xml 8 436 1545<br />
|  settings.xml 8 1376 7862<br />
|  META-INF/manifest.xml 8 286 1845<br />
|  Configurations2/statusbar/ 0 0 0<br />
|  Configurations2/accelerator/current.xml 8 2 0<br />
|  Configurations2/floater/ 0 0 0<br />
|  Configurations2/popupmenu/ 0 0 0<br />
|  Configurations2/progressbar/ 0 0 0<br />
|  Configurations2/menubar/ 0 0 0<br />
|  Configurations2/toolbar/ 0 0 0<br />
|  Configurations2/images/Bitmaps/ 0 0 0<br />
|  Thumbnails/thumbnail.png 8 2145 2367<br />
|<br />
|  Method resolution order:<br />
|      OOoPy<br />
|      autosuper<br />
|      __builtin__.object<br />
|<br />
|  Methods defined here:<br />
|<br />
|  __del__ = close(self)<br />
|<br />
|  __init__(self, infile=None, outfile=None, write_mode=&#8217;w', mimetype=None)<br />
|      Open an OOo document, if no outfile is given, we open the<br />
|      file read-only. Otherwise the outfile has to be different<br />
|      from the infile &#8212; the python ZipFile can&#8217;t deal with<br />
|      read-write access. In case an outfile is given, we open it<br />
|      in &#8220;w&#8221; mode as a zip file, unless write_mode is specified<br />
|      (the only allowed case would be &#8220;a&#8221; for appending to an<br />
|      existing file, see pythons ZipFile documentation for<br />
|      details). If no infile is given, the user is responsible for<br />
|      providing all necessary files in the resulting output file.<br />
|<br />
|      It seems that OOo needs to have the mimetype as the first<br />
|      archive member (at least with mimetype as the first member<br />
|      it works, the order may not be arbitrary) to recognize a zip<br />
|      archive as an OOo file. When copying from a given infile, we<br />
|      use the same order of elements in the resulting output. When<br />
|      creating new elements we make sure the mimetype is the first<br />
|      in the resulting archive.<br />
|<br />
|      Note that both, infile and outfile can either be filenames<br />
|      or file-like objects (e.g. StringIO).<br />
|<br />
|      The mimetype is automatically determined if an infile is<br />
|      given. If only writing is desired, the mimetype should be<br />
|      set.<br />
|<br />
|  close(self)<br />
|      Close the zip files. According to documentation of zipfile in<br />
|      the standard python lib, this has to be done to be sure<br />
|      everything is written. We copy over the not-yet written files<br />
|      from izip before closing ozip.<br />
|<br />
|  read(self, zname)<br />
|      return an OOoElementTree object for the given OOo document<br />
|      archive member name. Currently an OOo document contains the<br />
|      following XML files::<br />
|<br />
|       * content.xml: the text of the OOo document<br />
|       * styles.xml: style definitions<br />
|       * meta.xml: meta-information (author, last changed, &#8230;)<br />
|       * settings.xml: settings in OOo<br />
|       * META-INF/manifest.xml: contents of the archive<br />
|<br />
|      There is an additional file &#8220;mimetype&#8221; that always contains<br />
|      the string &#8220;application/vnd.sun.xml.writer&#8221; for OOo 1.X files<br />
|      and the string &#8220;application/vnd.oasis.opendocument.text&#8221; for<br />
|      OOo 2.X files.<br />
|<br />
|  write(self, zname, etree)<br />
|<br />
|  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
|  Data descriptors inherited from autosuper:<br />
|<br />
|  __dict__<br />
|      dictionary for instance variables (if defined)<br />
|<br />
|  __weakref__<br />
|      list of weak references to the object (if defined)<br />
|<br />
|  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
|  Data and other attributes inherited from autosuper:<br />
|<br />
|  __metaclass__ = &lt;class &#8216;ooopy.OOoPy._autosuper&#8217;&gt;</p>
<h3>Help do Transformer</h3>
<p>Help on class Transformer in module ooopy.Transformer:</p>
<p>class Transformer(ooopy.OOoPy.autosuper)<br />
|  Class for applying a set of transforms to a given ooopy object.<br />
|  The transforms are applied to the specified file in priority<br />
|  order. When applying transforms we have a mechanism for<br />
|  communication of transforms. We give the transformer to the<br />
|  individual transforms as a parameter. The transforms may use the<br />
|  transformer like a dictionary for storing values and retrieving<br />
|  values left by previous transforms.<br />
|  As a naming convention each transform should use its class name<br />
|  as a prefix for storing values in the dictionary.<br />
|  &gt;&gt;&gt; import Transforms<br />
|  &gt;&gt;&gt; from Transforms import renumber_all, get_meta, set_meta, meta_counts<br />
|  &gt;&gt;&gt; from StringIO import StringIO<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; m   = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; body [-1].get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, mimetype = m))<br />
|  &#8216;Standard&#8217;<br />
|  &gt;&gt;&gt; def cb (name) :<br />
|  &#8230;     r = { &#8216;street&#8217;     : &#8216;Beispielstrasse 42&#8242;<br />
|  &#8230;         , &#8216;firstname&#8217;  : &#8216;Hugo&#8217;<br />
|  &#8230;         , &#8216;salutation&#8217; : &#8216;Frau&#8217;<br />
|  &#8230;         }<br />
|  &#8230;     if r.has_key (name) : return r [name]<br />
|  &#8230;     return None<br />
|  &#8230;<br />
|  &gt;&gt;&gt; p = get_meta (m)<br />
|  &gt;&gt;&gt; t = Transformer (m, p)<br />
|  &gt;&gt;&gt; t ['a'] = &#8216;a&#8217;<br />
|  &gt;&gt;&gt; t ['a']<br />
|  &#8216;a&#8217;<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; p.set (&#8216;a&#8217;, &#8216;b&#8217;)<br />
|  &gt;&gt;&gt; t ['Attribute_Access:a']<br />
|  &#8216;b&#8217;<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       m<br />
|  &#8230;     , Transforms.Autoupdate ()<br />
|  &#8230;     , Transforms.Editinfo   ()<br />
|  &#8230;     , Transforms.Field_Replace (prio = 99, replace = cb)<br />
|  &#8230;     , Transforms.Field_Replace<br />
|  &#8230;         ( replace =<br />
|  &#8230;             { &#8216;salutation&#8217; : &#8221;<br />
|  &#8230;             , &#8216;firstname&#8217;  : &#8216;Erika&#8217;<br />
|  &#8230;             , &#8216;lastname&#8217;   : &#8216;Musterfrau&#8217;<br />
|  &#8230;             , &#8216;country&#8217;    : &#8216;D&#8217;<br />
|  &#8230;             , &#8216;postalcode&#8217; : &#8217;00815&#8242;<br />
|  &#8230;             , &#8216;city&#8217;       : &#8216;Niemandsdorf&#8217;<br />
|  &#8230;             }<br />
|  &#8230;         )<br />
|  &#8230;     , Transforms.Addpagebreak_Style ()<br />
|  &#8230;     , Transforms.Addpagebreak       ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;testout.sxw&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br />
|  &gt;&gt;&gt; for node in body.findall (vset) :<br />
|  &#8230;     name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name, &#8216;:&#8217;, node.text<br />
|  salutation : None<br />
|  firstname : Erika<br />
|  lastname : Musterfrau<br />
|  street : Beispielstrasse 42<br />
|  country : D<br />
|  postalcode : 00815<br />
|  city : Niemandsdorf<br />
|  salutation : None<br />
|  firstname : Erika<br />
|  lastname : Musterfrau<br />
|  street : Beispielstrasse 42<br />
|  country : D<br />
|  postalcode : 00815<br />
|  city : Niemandsdorf<br />
|  &gt;&gt;&gt; body [-1].get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, mimetype = m))<br />
|  &#8216;P2&#8242;<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       o.mimetype<br />
|  &#8230;     , get_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Addpagebreak_Style ()<br />
|  &#8230;     , Transforms.Mailmerge<br />
|  &#8230;       ( iterator =<br />
|  &#8230;         ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br />
|  &#8230;         , dict (firstname = &#8216;Eric&#8217;,  lastname = &#8216;Wizard&#8217;)<br />
|  &#8230;         , cb<br />
|  &#8230;         )<br />
|  &#8230;       )<br />
|  &#8230;     , renumber_all (o.mimetype)<br />
|  &#8230;     , set_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, t [':'.join (('Set_Attribute', i))]<br />
|  character-count 951<br />
|  image-count 0<br />
|  object-count 0<br />
|  page-count 3<br />
|  paragraph-count 113<br />
|  table-count 3<br />
|  word-count 162<br />
|  &gt;&gt;&gt; name = t ['Addpagebreak_Style:stylename']<br />
|  &gt;&gt;&gt; name<br />
|  &#8216;P2&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;testout2.sxw&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, m))<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//*&#8217;) :<br />
|  &#8230;     zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br />
|  &#8230;     if zidx :<br />
|  &#8230;         print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br />
|  draw:text-box 0<br />
|  draw:rect 1<br />
|  draw:text-box 3<br />
|  draw:rect 4<br />
|  draw:text-box 6<br />
|  draw:rect 7<br />
|  draw:text-box 2<br />
|  draw:text-box 5<br />
|  draw:text-box 8<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m)) == name :<br />
|  &#8230;         print n.tag<br />
|  {http://openoffice.org/2000/text}p<br />
|  {http://openoffice.org/2000/text}p<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, m)<br />
|  &gt;&gt;&gt; for n in body.findall (vset) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m), None).endswith (&#8216;name&#8217;) :<br />
|  &#8230;         name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;         print name, &#8216;:&#8217;, n.text<br />
|  firstname : Erika<br />
|  lastname : Nobody<br />
|  firstname : Eric<br />
|  lastname : Wizard<br />
|  firstname : Hugo<br />
|  lastname : Testman<br />
|  firstname : Erika<br />
|  lastname : Nobody<br />
|  firstname : Eric<br />
|  lastname : Wizard<br />
|  firstname : Hugo<br />
|  lastname : Testman<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;text-box&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;name&#8217;, m)),<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m))<br />
|  Frame1 1<br />
|  Frame2 2<br />
|  Frame3 3<br />
|  Frame4 None<br />
|  Frame5 None<br />
|  Frame6 None<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  Section1<br />
|  Section2<br />
|  Section3<br />
|  Section4<br />
|  Section5<br />
|  Section6<br />
|  Section7<br />
|  Section8<br />
|  Section9<br />
|  Section10<br />
|  Section11<br />
|  Section12<br />
|  Section13<br />
|  Section14<br />
|  Section15<br />
|  Section16<br />
|  Section17<br />
|  Section18<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;table&#8217;, &#8216;table&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;table&#8217;, &#8216;name&#8217;, m))<br />
|  Table1<br />
|  Table2<br />
|  Table3<br />
|  &gt;&gt;&gt; r = o.read (&#8216;meta.xml&#8217;)<br />
|  &gt;&gt;&gt; meta = r.find (&#8216;.//&#8217; + OOo_Tag (&#8216;meta&#8217;, &#8216;document-statistic&#8217;, m))<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, repr (meta.get (OOo_Tag (&#8216;meta&#8217;, i, m)))<br />
|  character-count &#8217;951&#8242;<br />
|  image-count &#8217;0&#8242;<br />
|  object-count &#8217;0&#8242;<br />
|  page-count &#8217;3&#8242;<br />
|  paragraph-count &#8217;113&#8242;<br />
|  table-count &#8217;3&#8242;<br />
|  word-count &#8217;162&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;test.sxw&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       o.mimetype<br />
|  &#8230;     , get_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Concatenate (&#8216;test.sxw&#8217;, &#8216;rechng.sxw&#8217;)<br />
|  &#8230;     , renumber_all (o.mimetype)<br />
|  &#8230;     , set_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, repr (t [':'.join (('Set_Attribute', i))])<br />
|  character-count &#8217;1131&#8242;<br />
|  image-count &#8217;0&#8242;<br />
|  object-count &#8217;0&#8242;<br />
|  page-count &#8217;3&#8242;<br />
|  paragraph-count &#8217;168&#8242;<br />
|  table-count &#8217;2&#8242;<br />
|  word-count &#8217;160&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;testout3.sxw&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; s = o.read (&#8216;styles.xml&#8217;)<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;./*/*&#8217;) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     if name :<br />
|  &#8230;         parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br />
|  &#8230;         print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br />
|  &#8220;Tahoma1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br />
|  &#8220;Tahoma&#8221;, &#8220;None&#8221;<br />
|  &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br />
|  &#8220;Courier New&#8221;, &#8220;None&#8221;<br />
|  &#8220;Arial Black&#8221;, &#8220;None&#8221;<br />
|  &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br />
|  &#8220;Helvetica&#8221;, &#8220;None&#8221;<br />
|  &#8220;Table1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.A&#8221;, &#8220;None&#8221;<br />
|  &#8220;Table1.A1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.E1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.A2&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.E2&#8243;, &#8220;None&#8221;<br />
|  &#8220;P1&#8243;, &#8220;None&#8221;<br />
|  &#8220;fr1&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr2&#8243;, &#8220;None&#8221;<br />
|  &#8220;fr3&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;Sect1&#8243;, &#8220;None&#8221;<br />
|  &#8220;gr1&#8243;, &#8220;None&#8221;<br />
|  &#8220;P2&#8243;, &#8220;Standard&#8221;<br />
|  &#8220;Standard_Concat&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_P1&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;Concat_P2&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P3&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P4&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P5&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P6&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P7&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P8&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P9&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P10&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P11&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P12&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P13&#8243;, &#8220;Concat_Frame contents&#8221;<br />
|  &#8220;P15&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P16&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P17&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P18&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P19&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P20&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P21&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P22&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P23&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;T1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Concat_fr1&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;Concat_fr2&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;Concat_fr3&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;fr4&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;fr5&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;fr6&#8243;, &#8220;Concat_Frame&#8221;<br />
|  &#8220;Concat_Sect1&#8243;, &#8220;None&#8221;<br />
|  &#8220;N0&#8243;, &#8220;None&#8221;<br />
|  &#8220;N2&#8243;, &#8220;None&#8221;<br />
|  &#8220;P15_Concat&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &gt;&gt;&gt; for n in s.findall (&#8216;./*/*&#8217;) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     if name :<br />
|  &#8230;         parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br />
|  &#8230;         print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br />
|  &#8220;Tahoma1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br />
|  &#8220;Tahoma&#8221;, &#8220;None&#8221;<br />
|  &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br />
|  &#8220;Courier New&#8221;, &#8220;None&#8221;<br />
|  &#8220;Arial Black&#8221;, &#8220;None&#8221;<br />
|  &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br />
|  &#8220;Helvetica&#8221;, &#8220;None&#8221;<br />
|  &#8220;Standard&#8221;, &#8220;None&#8221;<br />
|  &#8220;Text body&#8221;, &#8220;Standard&#8221;<br />
|  &#8220;List&#8221;, &#8220;Text body&#8221;<br />
|  &#8220;Table Contents&#8221;, &#8220;Text body&#8221;<br />
|  &#8220;Table Heading&#8221;, &#8220;Table Contents&#8221;<br />
|  &#8220;Caption&#8221;, &#8220;Standard&#8221;<br />
|  &#8220;Frame contents&#8221;, &#8220;Text body&#8221;<br />
|  &#8220;Index&#8221;, &#8220;Standard&#8221;<br />
|  &#8220;Frame&#8221;, &#8220;None&#8221;<br />
|  &#8220;OLE&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_Standard&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_Text body&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;Concat_List&#8221;, &#8220;Concat_Text body&#8221;<br />
|  &#8220;Concat_Caption&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;Concat_Frame contents&#8221;, &#8220;Concat_Text body&#8221;<br />
|  &#8220;Concat_Index&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;Horizontal Line&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;Internet link&#8221;, &#8220;None&#8221;<br />
|  &#8220;Visited Internet Link&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_Frame&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_OLE&#8221;, &#8220;None&#8221;<br />
|  &#8220;pm1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Concat_pm1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Standard&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_Standard&#8221;, &#8220;None&#8221;<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-decl&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name<br />
|  salutation<br />
|  firstname<br />
|  lastname<br />
|  street<br />
|  country<br />
|  postalcode<br />
|  city<br />
|  date<br />
|  invoice.invoice_no<br />
|  invoice.abo.aboprice.abotype.description<br />
|  address.salutation<br />
|  address.title<br />
|  address.firstname<br />
|  address.lastname<br />
|  address.function<br />
|  address.street<br />
|  address.country<br />
|  address.postalcode<br />
|  address.city<br />
|  invoice.subscriber.salutation<br />
|  invoice.subscriber.title<br />
|  invoice.subscriber.firstname<br />
|  invoice.subscriber.lastname<br />
|  invoice.subscriber.function<br />
|  invoice.subscriber.street<br />
|  invoice.subscriber.country<br />
|  invoice.subscriber.postalcode<br />
|  invoice.subscriber.city<br />
|  invoice.period_start<br />
|  invoice.period_end<br />
|  invoice.currency.name<br />
|  invoice.amount<br />
|  invoice.subscriber.initial<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;sequence-decl&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name<br />
|  Illustration<br />
|  Table<br />
|  Text<br />
|  Drawing<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m))<br />
|  &#8230;     if not name or name.startswith (&#8216;Concat&#8217;) :<br />
|  &#8230;         print &#8220;&gt;%s&lt;&#8221; % name<br />
|  &gt;Concat_P1&lt;<br />
|  &gt;Concat_P2&lt;<br />
|  &gt;Concat_Frame contents&lt;<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;text-box&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;name&#8217;, &#8216;style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br />
|  &#8230;     print attrs<br />
|  ['Frame1', 'fr1', '0', '1']<br />
|  ['Frame2', 'fr1', '3', '2']<br />
|  ['Frame3', 'Concat_fr1', '6', '3']<br />
|  ['Frame4', 'Concat_fr2', '7', '3']<br />
|  ['Frame5', 'Concat_fr3', '8', '3']<br />
|  ['Frame6', 'Concat_fr1', '9', '3']<br />
|  ['Frame7', 'fr4', '10', '3']<br />
|  ['Frame8', 'fr4', '11', '3']<br />
|  ['Frame9', 'fr4', '12', '3']<br />
|  ['Frame10', 'fr4', '13', '3']<br />
|  ['Frame11', 'fr4', '14', '3']<br />
|  ['Frame12', 'fr4', '15', '3']<br />
|  ['Frame13', 'fr5', '16', '3']<br />
|  ['Frame14', 'fr4', '18', '3']<br />
|  ['Frame15', 'fr4', '19', '3']<br />
|  ['Frame16', 'fr4', '20', '3']<br />
|  ['Frame17', 'fr6', '17', '3']<br />
|  ['Frame18', 'fr4', '23', '3']<br />
|  ['Frame19', 'fr3', '2', None]<br />
|  ['Frame20', 'fr3', '5', None]<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;name&#8217;, &#8216;style-name&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('text', i, m)) for i in attrs]<br />
|  &#8230;     print attrs<br />
|  ['Section1', 'Sect1']<br />
|  ['Section2', 'Sect1']<br />
|  ['Section3', 'Sect1']<br />
|  ['Section4', 'Sect1']<br />
|  ['Section5', 'Sect1']<br />
|  ['Section6', 'Sect1']<br />
|  ['Section7', 'Concat_Sect1']<br />
|  ['Section8', 'Concat_Sect1']<br />
|  ['Section9', 'Concat_Sect1']<br />
|  ['Section10', 'Concat_Sect1']<br />
|  ['Section11', 'Concat_Sect1']<br />
|  ['Section12', 'Concat_Sect1']<br />
|  ['Section13', 'Concat_Sect1']<br />
|  ['Section14', 'Concat_Sect1']<br />
|  ['Section15', 'Concat_Sect1']<br />
|  ['Section16', 'Concat_Sect1']<br />
|  ['Section17', 'Concat_Sect1']<br />
|  ['Section18', 'Concat_Sect1']<br />
|  ['Section19', 'Concat_Sect1']<br />
|  ['Section20', 'Concat_Sect1']<br />
|  ['Section21', 'Concat_Sect1']<br />
|  ['Section22', 'Concat_Sect1']<br />
|  ['Section23', 'Concat_Sect1']<br />
|  ['Section24', 'Concat_Sect1']<br />
|  ['Section25', 'Concat_Sect1']<br />
|  ['Section26', 'Concat_Sect1']<br />
|  ['Section27', 'Concat_Sect1']<br />
|  ['Section28', 'Sect1']<br />
|  ['Section29', 'Sect1']<br />
|  ['Section30', 'Sect1']<br />
|  ['Section31', 'Sect1']<br />
|  ['Section32', 'Sect1']<br />
|  ['Section33', 'Sect1']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;rect&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br />
|  &#8230;     print attrs<br />
|  ['gr1', 'P1', '1', '1']<br />
|  ['gr1', 'P1', '4', '2']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;line&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     print attrs<br />
|  ['gr1', 'P1', '24']<br />
|  ['gr1', 'P1', '22']<br />
|  ['gr1', 'P1', '21']<br />
|  &gt;&gt;&gt; for n in s.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;style&#8217;, m)) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m)).startswith (&#8216;Co&#8217;) :<br />
|  &#8230;         attrs = &#8216;name&#8217;, &#8216;class&#8217;, &#8216;family&#8217;<br />
|  &#8230;         attrs = [n.get (OOo_Tag ('style', i, m)) for i in attrs]<br />
|  &#8230;         print attrs<br />
|  &#8230;         props = n.find (&#8216;./&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;properties&#8217;, m))<br />
|  &#8230;         if props is not None and len (props) :<br />
|  &#8230;             props [0].tag<br />
|  ['Concat_Standard', 'text', 'paragraph']<br />
|  &#8216;{http://openoffice.org/2000/style}tab-stops&#8217;<br />
|  ['Concat_Text body', 'text', 'paragraph']<br />
|  ['Concat_List', 'list', 'paragraph']<br />
|  ['Concat_Caption', 'extra', 'paragraph']<br />
|  ['Concat_Frame contents', 'extra', 'paragraph']<br />
|  ['Concat_Index', 'index', 'paragraph']<br />
|  ['Concat_Frame', None, 'graphics']<br />
|  ['Concat_OLE', None, 'graphics']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//*&#8217;) :<br />
|  &#8230;     zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br />
|  &#8230;     if zidx :<br />
|  &#8230;         print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br />
|  draw:text-box 0<br />
|  draw:rect 1<br />
|  draw:text-box 3<br />
|  draw:rect 4<br />
|  draw:text-box 6<br />
|  draw:text-box 7<br />
|  draw:text-box 8<br />
|  draw:text-box 9<br />
|  draw:text-box 10<br />
|  draw:text-box 11<br />
|  draw:text-box 12<br />
|  draw:text-box 13<br />
|  draw:text-box 14<br />
|  draw:text-box 15<br />
|  draw:text-box 16<br />
|  draw:text-box 18<br />
|  draw:text-box 19<br />
|  draw:text-box 20<br />
|  draw:text-box 17<br />
|  draw:text-box 23<br />
|  draw:line 24<br />
|  draw:text-box 2<br />
|  draw:text-box 5<br />
|  draw:line 22<br />
|  draw:line 21<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;carta.stw&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; t = Transformer (<br />
|  &#8230;     o.mimetype<br />
|  &#8230;   , get_meta (o.mimetype)<br />
|  &#8230;   , Transforms.Addpagebreak_Style ()<br />
|  &#8230;   , Transforms.Mailmerge<br />
|  &#8230;     ( iterator =<br />
|  &#8230;         ( dict<br />
|  &#8230;             ( Spett = &#8220;Spettabile&#8221;<br />
|  &#8230;             , contraente = &#8220;First person&#8221;<br />
|  &#8230;             , indirizzo = &#8220;street? 1&#8243;<br />
|  &#8230;             , tipo = &#8220;racc. A.C.&#8221;<br />
|  &#8230;             , luogo = &#8220;Varese&#8221;<br />
|  &#8230;             , oggetto = &#8220;Saluti&#8221;<br />
|  &#8230;             )<br />
|  &#8230;         , dict<br />
|  &#8230;             ( Spett = &#8220;Egregio&#8221;<br />
|  &#8230;             , contraente = &#8220;Second Person&#8221;<br />
|  &#8230;             , indirizzo = &#8220;street? 2&#8243;<br />
|  &#8230;             , tipo = &#8220;Raccomandata&#8221;<br />
|  &#8230;             , luogo = &#8220;Gavirate&#8221;<br />
|  &#8230;             , oggetto = &#8220;Ossequi&#8221;<br />
|  &#8230;             )<br />
|  &#8230;         )<br />
|  &#8230;     )<br />
|  &#8230;   , renumber_all (o.mimetype)<br />
|  &#8230;   , set_meta (o.mimetype)<br />
|  &#8230;   , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;   )<br />
|  &gt;&gt;&gt; t.transform(o)<br />
|  &gt;&gt;&gt; o.close()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;carta-out.stw&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br />
|  &gt;&gt;&gt; for node in body.findall (vset) :<br />
|  &#8230;     name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name, &#8216;:&#8217;, node.text<br />
|  Spett : Spettabile<br />
|  contraente : First person<br />
|  indirizzo : street? 1<br />
|  Spett : Egregio<br />
|  contraente : Second Person<br />
|  indirizzo : street? 2<br />
|  tipo : racc. A.C.<br />
|  luogo : Varese<br />
|  oggetto : Saluti<br />
|  tipo : Raccomandata<br />
|  luogo : Gavirate<br />
|  oggetto : Ossequi<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;test.odt&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       o.mimetype<br />
|  &#8230;     , get_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Addpagebreak_Style ()<br />
|  &#8230;     , Transforms.Mailmerge<br />
|  &#8230;       ( iterator =<br />
|  &#8230;         ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br />
|  &#8230;         , dict (firstname = &#8216;Eric&#8217;,  lastname = &#8216;Wizard&#8217;)<br />
|  &#8230;         , cb<br />
|  &#8230;         )<br />
|  &#8230;       )<br />
|  &#8230;     , renumber_all (o.mimetype)<br />
|  &#8230;     , set_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, t [':'.join (('Set_Attribute', i))]<br />
|  character-count 951<br />
|  image-count 0<br />
|  object-count 0<br />
|  page-count 3<br />
|  paragraph-count 53<br />
|  table-count 3<br />
|  word-count 162<br />
|  &gt;&gt;&gt; name = t ['Addpagebreak_Style:stylename']<br />
|  &gt;&gt;&gt; name<br />
|  &#8216;P2&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;testout.odt&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, m))<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//*&#8217;) :<br />
|  &#8230;     zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br />
|  &#8230;     if zidx :<br />
|  &#8230;         print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br />
|  draw:frame 0<br />
|  draw:rect 1<br />
|  draw:frame 3<br />
|  draw:rect 4<br />
|  draw:frame 6<br />
|  draw:rect 7<br />
|  draw:frame 2<br />
|  draw:frame 5<br />
|  draw:frame 8<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m)) == name :<br />
|  &#8230;         print n.tag<br />
|  {urn:oasis:names:tc:opendocument:xmlns:text:1.0}p<br />
|  {urn:oasis:names:tc:opendocument:xmlns:text:1.0}p<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, m)<br />
|  &gt;&gt;&gt; for n in body.findall (vset) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m), None).endswith (&#8216;name&#8217;) :<br />
|  &#8230;         name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;         print name, &#8216;:&#8217;, n.text<br />
|  firstname : Erika<br />
|  lastname : Nobody<br />
|  firstname : Eric<br />
|  lastname : Wizard<br />
|  firstname : Hugo<br />
|  lastname : Testman<br />
|  firstname : Erika<br />
|  lastname : Nobody<br />
|  firstname : Eric<br />
|  lastname : Wizard<br />
|  firstname : Hugo<br />
|  lastname : Testman<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;frame&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;name&#8217;, m)),<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m))<br />
|  Frame1 1<br />
|  Frame2 2<br />
|  Frame3 3<br />
|  Frame4 None<br />
|  Frame5 None<br />
|  Frame6 None<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  Section1<br />
|  Section2<br />
|  Section3<br />
|  Section4<br />
|  Section5<br />
|  Section6<br />
|  Section7<br />
|  Section8<br />
|  Section9<br />
|  Section10<br />
|  Section11<br />
|  Section12<br />
|  Section13<br />
|  Section14<br />
|  Section15<br />
|  Section16<br />
|  Section17<br />
|  Section18<br />
|  &gt;&gt;&gt; for n in body.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;table&#8217;, &#8216;table&#8217;, m)) :<br />
|  &#8230;     print n.get (OOo_Tag (&#8216;table&#8217;, &#8216;name&#8217;, m))<br />
|  Table1<br />
|  Table2<br />
|  Table3<br />
|  &gt;&gt;&gt; r = o.read (&#8216;meta.xml&#8217;)<br />
|  &gt;&gt;&gt; meta = r.find (&#8216;.//&#8217; + OOo_Tag (&#8216;meta&#8217;, &#8216;document-statistic&#8217;, m))<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, repr (meta.get (OOo_Tag (&#8216;meta&#8217;, i, m)))<br />
|  character-count &#8217;951&#8242;<br />
|  image-count &#8217;0&#8242;<br />
|  object-count &#8217;0&#8242;<br />
|  page-count &#8217;3&#8242;<br />
|  paragraph-count &#8217;53&#8242;<br />
|  table-count &#8217;3&#8242;<br />
|  word-count &#8217;162&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;carta.odt&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; t = Transformer (<br />
|  &#8230;     o.mimetype<br />
|  &#8230;   , get_meta (o.mimetype)<br />
|  &#8230;   , Transforms.Addpagebreak_Style ()<br />
|  &#8230;   , Transforms.Mailmerge<br />
|  &#8230;     ( iterator =<br />
|  &#8230;         ( dict<br />
|  &#8230;             ( Spett = &#8220;Spettabile&#8221;<br />
|  &#8230;             , contraente = &#8220;First person&#8221;<br />
|  &#8230;             , indirizzo = &#8220;street? 1&#8243;<br />
|  &#8230;             , tipo = &#8220;racc. A.C.&#8221;<br />
|  &#8230;             , luogo = &#8220;Varese&#8221;<br />
|  &#8230;             , oggetto = &#8220;Saluti&#8221;<br />
|  &#8230;             )<br />
|  &#8230;         , dict<br />
|  &#8230;             ( Spett = &#8220;Egregio&#8221;<br />
|  &#8230;             , contraente = &#8220;Second Person&#8221;<br />
|  &#8230;             , indirizzo = &#8220;street? 2&#8243;<br />
|  &#8230;             , tipo = &#8220;Raccomandata&#8221;<br />
|  &#8230;             , luogo = &#8220;Gavirate&#8221;<br />
|  &#8230;             , oggetto = &#8220;Ossequi&#8221;<br />
|  &#8230;             )<br />
|  &#8230;         )<br />
|  &#8230;     )<br />
|  &#8230;   , renumber_all (o.mimetype)<br />
|  &#8230;   , set_meta (o.mimetype)<br />
|  &#8230;   , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;   )<br />
|  &gt;&gt;&gt; t.transform(o)<br />
|  &gt;&gt;&gt; o.close()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;carta-out.odt&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br />
|  &gt;&gt;&gt; for node in body.findall (vset) :<br />
|  &#8230;     name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name, &#8216;:&#8217;, node.text<br />
|  Spett : Spettabile<br />
|  contraente : First person<br />
|  indirizzo : street? 1<br />
|  Spett : Egregio<br />
|  contraente : Second Person<br />
|  indirizzo : street? 2<br />
|  tipo : racc. A.C.<br />
|  luogo : Varese<br />
|  oggetto : Saluti<br />
|  tipo : Raccomandata<br />
|  luogo : Gavirate<br />
|  oggetto : Ossequi<br />
|  &gt;&gt;&gt; sio = StringIO ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;test.odt&#8217;, outfile = sio)<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       o.mimetype<br />
|  &#8230;     , get_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Concatenate (&#8216;test.odt&#8217;, &#8216;rechng.odt&#8217;)<br />
|  &#8230;     , renumber_all (o.mimetype)<br />
|  &#8230;     , set_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; for i in meta_counts :<br />
|  &#8230;     print i, repr (t [':'.join (('Set_Attribute', i))])<br />
|  character-count &#8217;1131&#8242;<br />
|  image-count &#8217;0&#8242;<br />
|  object-count &#8217;0&#8242;<br />
|  page-count &#8217;3&#8242;<br />
|  paragraph-count &#8217;80&#8242;<br />
|  table-count &#8217;2&#8242;<br />
|  word-count &#8217;159&#8242;<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; ov  = sio.getvalue ()<br />
|  &gt;&gt;&gt; f   = open (&#8220;testout3.odt&#8221;, &#8220;wb&#8221;)<br />
|  &gt;&gt;&gt; f.write (ov)<br />
|  &gt;&gt;&gt; f.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = sio)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; s = o.read (&#8216;styles.xml&#8217;)<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;./*/*&#8217;) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     if name :<br />
|  &#8230;         parent = n.get (OOo_Tag (&#8216;style&#8217;, &#8216;parent-style-name&#8217;, m))<br />
|  &#8230;         print &#8216;&#8221;%s&#8221;, &#8220;%s&#8221;&#8216; % (name, parent)<br />
|  &#8220;Tahoma1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Bitstream Vera Sans&#8221;, &#8220;None&#8221;<br />
|  &#8220;Tahoma&#8221;, &#8220;None&#8221;<br />
|  &#8220;Nimbus Roman No9 L&#8221;, &#8220;None&#8221;<br />
|  &#8220;Courier New&#8221;, &#8220;None&#8221;<br />
|  &#8220;Arial Black&#8221;, &#8220;None&#8221;<br />
|  &#8220;New Century Schoolbook&#8221;, &#8220;None&#8221;<br />
|  &#8220;Times New Roman&#8221;, &#8220;None&#8221;<br />
|  &#8220;Arial&#8221;, &#8220;None&#8221;<br />
|  &#8220;Helvetica&#8221;, &#8220;None&#8221;<br />
|  &#8220;Table1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.A&#8221;, &#8220;None&#8221;<br />
|  &#8220;Table1.A1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.E1&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.A2&#8243;, &#8220;None&#8221;<br />
|  &#8220;Table1.E2&#8243;, &#8220;None&#8221;<br />
|  &#8220;P1&#8243;, &#8220;None&#8221;<br />
|  &#8220;fr1&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr2&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;Sect1&#8243;, &#8220;None&#8221;<br />
|  &#8220;gr1&#8243;, &#8220;None&#8221;<br />
|  &#8220;P2&#8243;, &#8220;Standard&#8221;<br />
|  &#8220;Standard_Concat&#8221;, &#8220;None&#8221;<br />
|  &#8220;Concat_P1&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;Concat_P2&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P3&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P4&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P5&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P6&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P7&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P8&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P9&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P10&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P11&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P12&#8243;, &#8220;Concat_Frame_20_contents&#8221;<br />
|  &#8220;P14&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P15&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P16&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P17&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P18&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P19&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P20&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P21&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P22&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;P23&#8243;, &#8220;Concat_Standard&#8221;<br />
|  &#8220;Concat_fr1&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;Concat_fr2&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr3&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr4&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr5&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;fr6&#8243;, &#8220;Frame&#8221;<br />
|  &#8220;Concat_gr1&#8243;, &#8220;None&#8221;<br />
|  &#8220;N0&#8243;, &#8220;None&#8221;<br />
|  &#8220;N2&#8243;, &#8220;None&#8221;<br />
|  &#8220;P14_Concat&#8221;, &#8220;Concat_Standard&#8221;<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-decl&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name<br />
|  salutation<br />
|  firstname<br />
|  lastname<br />
|  street<br />
|  country<br />
|  postalcode<br />
|  city<br />
|  date<br />
|  invoice.invoice_no<br />
|  invoice.abo.aboprice.abotype.description<br />
|  address.salutation<br />
|  address.title<br />
|  address.firstname<br />
|  address.lastname<br />
|  address.function<br />
|  address.street<br />
|  address.country<br />
|  address.postalcode<br />
|  address.city<br />
|  invoice.subscriber.salutation<br />
|  invoice.subscriber.title<br />
|  invoice.subscriber.firstname<br />
|  invoice.subscriber.lastname<br />
|  invoice.subscriber.function<br />
|  invoice.subscriber.street<br />
|  invoice.subscriber.country<br />
|  invoice.subscriber.postalcode<br />
|  invoice.subscriber.city<br />
|  invoice.period_start<br />
|  invoice.period_end<br />
|  invoice.currency.name<br />
|  invoice.amount<br />
|  invoice.subscriber.initial<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;sequence-decl&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name<br />
|  Illustration<br />
|  Table<br />
|  Text<br />
|  Drawing<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;p&#8217;, m)) :<br />
|  &#8230;     name = n.get (OOo_Tag (&#8216;text&#8217;, &#8216;style-name&#8217;, m))<br />
|  &#8230;     if not name or name.startswith (&#8216;Concat&#8217;) :<br />
|  &#8230;         print &#8216;:&#8217;.join(split_tag (n.tag)), &#8220;&gt;%s&lt;&#8221; % name<br />
|  text:p &gt;None&lt;<br />
|  text:p &gt;None&lt;<br />
|  text:p &gt;Concat_P1&lt;<br />
|  text:p &gt;Concat_P1&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_P2&lt;<br />
|  text:p &gt;Concat_Frame_20_contents&lt;<br />
|  text:p &gt;None&lt;<br />
|  text:p &gt;None&lt;<br />
|  text:p &gt;None&lt;<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;frame&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;name&#8217;, &#8216;style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br />
|  &#8230;     print attrs<br />
|  ['Frame1', 'fr1', '0', '1']<br />
|  ['Frame2', 'fr1', '3', '2']<br />
|  ['Frame3', 'Concat_fr1', '6', '3']<br />
|  ['Frame4', 'Concat_fr2', '7', '3']<br />
|  ['Frame5', 'fr3', '8', '3']<br />
|  ['Frame6', 'Concat_fr1', '9', '3']<br />
|  ['Frame7', 'fr4', '10', '3']<br />
|  ['Frame8', 'fr4', '11', '3']<br />
|  ['Frame9', 'fr4', '12', '3']<br />
|  ['Frame10', 'fr4', '13', '3']<br />
|  ['Frame11', 'fr4', '14', '3']<br />
|  ['Frame12', 'fr4', '15', '3']<br />
|  ['Frame13', 'fr5', '16', '3']<br />
|  ['Frame14', 'fr4', '18', '3']<br />
|  ['Frame15', 'fr4', '19', '3']<br />
|  ['Frame16', 'fr4', '20', '3']<br />
|  ['Frame17', 'fr6', '17', '3']<br />
|  ['Frame18', 'fr4', '23', '3']<br />
|  ['Frame19', 'fr2', '2', None]<br />
|  ['Frame20', 'fr2', '5', None]<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;section&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;name&#8217;, &#8216;style-name&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('text', i, m)) for i in attrs]<br />
|  &#8230;     print attrs<br />
|  ['Section1', 'Sect1']<br />
|  ['Section2', 'Sect1']<br />
|  ['Section3', 'Sect1']<br />
|  ['Section4', 'Sect1']<br />
|  ['Section5', 'Sect1']<br />
|  ['Section6', 'Sect1']<br />
|  ['Section7', 'Sect1']<br />
|  ['Section8', 'Sect1']<br />
|  ['Section9', 'Sect1']<br />
|  ['Section10', 'Sect1']<br />
|  ['Section11', 'Sect1']<br />
|  ['Section12', 'Sect1']<br />
|  ['Section13', 'Sect1']<br />
|  ['Section14', 'Sect1']<br />
|  ['Section15', 'Sect1']<br />
|  ['Section16', 'Sect1']<br />
|  ['Section17', 'Sect1']<br />
|  ['Section18', 'Sect1']<br />
|  ['Section19', 'Sect1']<br />
|  ['Section20', 'Sect1']<br />
|  ['Section21', 'Sect1']<br />
|  ['Section22', 'Sect1']<br />
|  ['Section23', 'Sect1']<br />
|  ['Section24', 'Sect1']<br />
|  ['Section25', 'Sect1']<br />
|  ['Section26', 'Sect1']<br />
|  ['Section27', 'Sect1']<br />
|  ['Section28', 'Sect1']<br />
|  ['Section29', 'Sect1']<br />
|  ['Section30', 'Sect1']<br />
|  ['Section31', 'Sect1']<br />
|  ['Section32', 'Sect1']<br />
|  ['Section33', 'Sect1']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;rect&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     attrs.append (n.get (OOo_Tag (&#8216;text&#8217;, &#8216;anchor-page-number&#8217;, m)))<br />
|  &#8230;     print attrs<br />
|  ['gr1', 'P1', '1', '1']<br />
|  ['gr1', 'P1', '4', '2']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;draw&#8217;, &#8216;line&#8217;, m)) :<br />
|  &#8230;     attrs = &#8216;style-name&#8217;, &#8216;text-style-name&#8217;, &#8216;z-index&#8217;<br />
|  &#8230;     attrs = [n.get (OOo_Tag ('draw', i, m)) for i in attrs]<br />
|  &#8230;     print attrs<br />
|  ['Concat_gr1', 'P1', '24']<br />
|  ['Concat_gr1', 'P1', '22']<br />
|  ['Concat_gr1', 'P1', '21']<br />
|  &gt;&gt;&gt; for n in s.findall (&#8216;.//&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;style&#8217;, m)) :<br />
|  &#8230;     if n.get (OOo_Tag (&#8216;style&#8217;, &#8216;name&#8217;, m)).startswith (&#8216;Co&#8217;) :<br />
|  &#8230;         attrs = &#8216;name&#8217;, &#8216;display-name&#8217;, &#8216;class&#8217;, &#8216;family&#8217;<br />
|  &#8230;         attrs = [n.get (OOo_Tag ('style', i, m)) for i in attrs]<br />
|  &#8230;         print attrs<br />
|  &#8230;         props = n.find (&#8216;./&#8217; + OOo_Tag (&#8216;style&#8217;, &#8216;properties&#8217;, m))<br />
|  &#8230;         if props is not None and len (props) :<br />
|  &#8230;             props [0].tag<br />
|  ['Concat_Standard', None, 'text', 'paragraph']<br />
|  ['Concat_Text_20_body', 'Concat Text body', 'text', 'paragraph']<br />
|  ['Concat_List', None, 'list', 'paragraph']<br />
|  ['Concat_Caption', None, 'extra', 'paragraph']<br />
|  ['Concat_Frame_20_contents', 'Concat Frame contents', 'extra', 'paragraph']<br />
|  ['Concat_Index', None, 'index', 'paragraph']<br />
|  &gt;&gt;&gt; for n in c.findall (&#8216;.//*&#8217;) :<br />
|  &#8230;     zidx = n.get (OOo_Tag (&#8216;draw&#8217;, &#8216;z-index&#8217;, m))<br />
|  &#8230;     if zidx :<br />
|  &#8230;         print &#8216;:&#8217;.join(split_tag (n.tag)), zidx<br />
|  draw:frame 0<br />
|  draw:rect 1<br />
|  draw:frame 3<br />
|  draw:rect 4<br />
|  draw:frame 6<br />
|  draw:frame 7<br />
|  draw:frame 8<br />
|  draw:frame 9<br />
|  draw:frame 10<br />
|  draw:frame 11<br />
|  draw:frame 12<br />
|  draw:frame 13<br />
|  draw:frame 14<br />
|  draw:frame 15<br />
|  draw:frame 16<br />
|  draw:frame 18<br />
|  draw:frame 19<br />
|  draw:frame 20<br />
|  draw:frame 17<br />
|  draw:frame 23<br />
|  draw:line 24<br />
|  draw:frame 2<br />
|  draw:frame 5<br />
|  draw:line 22<br />
|  draw:line 21<br />
|  &gt;&gt;&gt; from os import system<br />
|  &gt;&gt;&gt; system (&#8216;python ./ooo_fieldreplace -i test.odt -o testout.odt &#8216;<br />
|  &#8230;         &#8216;salutation=Frau firstname=Erika lastname=Musterfrau &#8216;<br />
|  &#8230;         &#8216;country=D postalcode=00815 city=Niemandsdorf &#8216;<br />
|  &#8230;         &#8216;street=&#8221;Beispielstrasse 42&#8243;&#8216;)<br />
|  0<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;testout.odt&#8217;)<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br />
|  &gt;&gt;&gt; for node in body.findall (vset) :<br />
|  &#8230;     name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name, &#8216;:&#8217;, node.text<br />
|  salutation : Frau<br />
|  firstname : Erika<br />
|  lastname : Musterfrau<br />
|  street : Beispielstrasse 42<br />
|  country : D<br />
|  postalcode : 00815<br />
|  city : Niemandsdorf<br />
|  salutation : Frau<br />
|  firstname : Erika<br />
|  lastname : Musterfrau<br />
|  street : Beispielstrasse 42<br />
|  country : D<br />
|  postalcode : 00815<br />
|  city : Niemandsdorf<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; system (&#8220;./ooo_mailmerge -o testout.odt -d, carta.odt x.csv&#8221;)<br />
|  0<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;testout.odt&#8217;)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; vset = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;variable-set&#8217;, mimetype = m)<br />
|  &gt;&gt;&gt; for node in body.findall (vset) :<br />
|  &#8230;     name = node.get (OOo_Tag (&#8216;text&#8217;, &#8216;name&#8217;, m))<br />
|  &#8230;     print name, &#8216;:&#8217;, node.text<br />
|  Spett : Spettabile<br />
|  contraente : First person<br />
|  indirizzo : street? 1<br />
|  Spett : Egregio<br />
|  contraente : Second Person<br />
|  indirizzo : street? 2<br />
|  tipo : racc. A.C.<br />
|  luogo : Varese<br />
|  oggetto : Saluti<br />
|  tipo : Raccomandata<br />
|  luogo : Gavirate<br />
|  oggetto : Ossequi<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; o   = OOoPy (infile = &#8216;testenum.odt&#8217;, outfile = &#8216;xyzzy.odt&#8217;)<br />
|  &gt;&gt;&gt; t   = Transformer (<br />
|  &#8230;       o.mimetype<br />
|  &#8230;     , get_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Addpagebreak_Style ()<br />
|  &#8230;     , Transforms.Mailmerge<br />
|  &#8230;       ( iterator =<br />
|  &#8230;         ( dict (firstname = &#8216;Erika&#8217;, lastname = &#8216;Nobody&#8217;)<br />
|  &#8230;         , dict (firstname = &#8216;Eric&#8217;,  lastname = &#8216;Wizard&#8217;)<br />
|  &#8230;         , cb<br />
|  &#8230;         )<br />
|  &#8230;       )<br />
|  &#8230;     , renumber_all (o.mimetype)<br />
|  &#8230;     , set_meta (o.mimetype)<br />
|  &#8230;     , Transforms.Fix_OOo_Tag ()<br />
|  &#8230;     )<br />
|  &gt;&gt;&gt; t.transform (o)<br />
|  &gt;&gt;&gt; o.close ()<br />
|  &gt;&gt;&gt; o = OOoPy (infile = &#8216;xyzzy.odt&#8217;)<br />
|  &gt;&gt;&gt; m = o.mimetype<br />
|  &gt;&gt;&gt; c = o.read (&#8216;content.xml&#8217;)<br />
|  &gt;&gt;&gt; body = c.find (OOo_Tag (&#8216;office&#8217;, &#8216;body&#8217;, mimetype = m))<br />
|  &gt;&gt;&gt; textlist = &#8216;.//&#8217; + OOo_Tag (&#8216;text&#8217;, &#8216;list&#8217;, m)<br />
|  &gt;&gt;&gt; for node in body.findall (textlist) :<br />
|  &#8230;     id = node.get (OOo_Tag (&#8216;xml&#8217;, &#8216;id&#8217;, m))<br />
|  &#8230;     print &#8216;xml:id&#8217;, &#8216;:&#8217;, id<br />
|  xml:id : list1<br />
|  xml:id : list2<br />
|  xml:id : list3<br />
|<br />
|  Method resolution order:<br />
|      Transformer<br />
|      ooopy.OOoPy.autosuper<br />
|      __builtin__.object<br />
|<br />
|  Methods defined here:<br />
|<br />
|  __getitem__(self, key)<br />
|<br />
|  __init__(self, mimetype, *tf)<br />
|<br />
|  __setitem__(self, key, value)<br />
|<br />
|  insert(self, transform)<br />
|      Insert a new transform<br />
|<br />
|  transform(self, ooopy)<br />
|      Apply all the transforms in priority order.<br />
|      Priority order is global over all transforms.<br />
|<br />
|  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
|  Data descriptors inherited from ooopy.OOoPy.autosuper:<br />
|<br />
|  __dict__<br />
|      dictionary for instance variables (if defined)<br />
|<br />
|  __weakref__<br />
|      list of weak references to the object (if defined)<br />
|<br />
|  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
|  Data and other attributes inherited from ooopy.OOoPy.autosuper:<br />
|<br />
|  __metaclass__ = &lt;class &#8216;ooopy.OOoPy._autosuper&#8217;&gt;</p>
<p>&nbsp;</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2011/01/05/como-instalar-interface-grafica-ttk-no-python-do-scribus/" rel="bookmark" class="crp_title">Como instalar interface gráfica ttk no Python do Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2010/11/28/pagemaker-dialog-builder/" rel="bookmark" class="crp_title">PageMaker Dialog Builder</a></li><li><a href="http://meiradarocha.jor.br/news/2010/01/16/como-importar-posts-de-blogs-para-o-scribus/" rel="bookmark" class="crp_title">Como importar posts de blogs para o Scribus</a></li><li><a href="http://meiradarocha.jor.br/news/2009/06/08/scribus-scripting-descobrindo-o-tipo-de-um-objeto-grafico/" rel="bookmark" class="crp_title">Scribus scripting: descobrindo o tipo de um objeto gráfico</a></li><li><a href="http://meiradarocha.jor.br/news/2010/11/28/pagemaker-scripting-language-programming-statements/" rel="bookmark" class="crp_title">PageMaker Scripting Language: programming statements</a></li><li><a href="http://meiradarocha.jor.br/news/2008/07/26/automatizando-diagramacao-de-noticias-com-scribus-e-python/" rel="bookmark" class="crp_title">Automatizando diagramação de notícias com Scribus e Python</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/11/preparando-o-acesso-do-scribus-ao-mysql/" rel="bookmark" class="crp_title">Preparando o acesso do Scribus ao MySQL</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/04/01/como-ler-documentos-do-broffice-por-scripts-do-scribus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Princípios da linguagem visual do Jornalismo</title>
		<link>http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/</link>
		<comments>http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 15:06:56 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Jornalismo]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=1972</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Princ%C3%ADpios+da+linguagem+visual+do+Jornalismo&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-03-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/&amp;rft.language=Portuguese"></span>
Os princípios da linguagem visual do Jornalismo podem ser vistos como a gramática da linguagem visual. Eles determinam como se combinam os elementos da linguagem visual. Estes princípios foram desenvolvidos...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Princ%C3%ADpios+da+linguagem+visual+do+Jornalismo&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-03-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=1972"><!-- &nbsp; --></abbr>
<p>Os princípios da linguagem visual do Jornalismo podem ser vistos como a gramática da linguagem visual. Eles determinam como se combinam os <a href="http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/">elementos da linguagem visual</a>. Estes princípios foram desenvolvidos ao longo da história da arte e compilados  principalmente pela escola <a href="http://pt.wikipedia.org/wiki/Bauhaus">Bauhaus</a>, na primeira metade do século 20, na  Alemanha.</p>
<h3>Movimento</h3>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/movimento_BRA_LSP.jpg"><img class="alignnone size-medium wp-image-1974" title="movimento_BRA_LSP" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/movimento_BRA_LSP-198x300.jpg" alt="" width="198" height="300" /></a></p>
<p>Mesmo uma <a href="http://meiradarocha.jor.br/news/2007/06/13/caminhos-da-visao/">imagem estática é vista com movimentos</a>. Além disto, ela pode sugerir movimento, como nesta foto de capa. Os <a href="http://meiradarocha.jor.br/news/2007/08/10/zonas-de-visualizacao-da-pagina-impressa/">olhos seguem um caminho que o diagramador, em grande parte, determina</a>.</p>
<h3>Direção</h3>
<p>É a organização dos elementos gráficos de modo a guiar os olhos do  observador. As pessoas nas fotos devem olhar para a matéria, não para  fora da página (a não ser quando você quer dar opinião na diagramação,  dizendo que um político não está olhando para um problema, por exemplo)</p>
<h3>Unidade</h3>
<p>Qualidade de totalidade que é obtida pela repetição de certos elementos e princípios ao longo de uma publicação. É o que mais define um projeto gráfico.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor.jpg"><img class="alignnone size-medium wp-image-1966" title="cor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor-300x210.jpg" alt="" width="300" height="210" /></a><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/valor.jpg"><img class="alignnone size-medium wp-image-1969" title="valor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/valor-300x210.jpg" alt="" width="300" height="210" /></a></p>
<h3>Contraste</h3>
<p>É criado através da comparação ou justaposição de elementos que conflituam entre si. Pode haver contraste de tamanho (títulos e textos, fotos grandes e fotos pequenas), contraste de contornos (letras com serifa e sem serifa), contraste de área (letras grossas e letras finas), contraste de cor (verde e roxo), contraste de valor (azul claro e azul escuro) etc.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contraste_IL_RE.jpg"><img class="alignnone size-medium wp-image-1983" title="contraste_IL_RE" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contraste_IL_RE-283x300.jpg" alt="" width="283" height="300" /></a></p>
<p>O contraste foi obtido nas roupas dos modelos.</p>
<h3>Variedade</h3>
<p>Ou alternância. É o uso de diferenças de cor, tamanho, área, valor etc para criar um interesse visual. Uma página de publicação nunca deve ser igual à outra na mesma edição. Principalmente as capas não devem ser parecidas de uma edição para outra.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/variedade_ME_PPH.jpg"><img class="alignnone size-medium wp-image-1984" title="variedade_ME_PPH" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/variedade_ME_PPH-167x300.jpg" alt="" width="167" height="300" /></a></p>
<h3>Balanço</h3>
<p>É o arranjo das partes de uma composição visual de modo que cada parte não pareça ter maior &#8220;peso&#8221; do que outra. O balanço pode ser simétrico, assimétrico e radial.</p>
<p>Um texto noticioso grande, por exemplo, não pode ter uma foto pequena no canto. É aconselhável, neste caso, aumentar a foto e centralizá-la.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/balanco_SPA_PAIS.jpg"><img class="size-medium wp-image-1978 alignnone" title="balanco_SPA_PAIS" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/balanco_SPA_PAIS-202x300.jpg" alt="" width="202" height="300" /></a><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/balanco_MA_BH.jpg"><img class="alignnone size-medium wp-image-1987" title="balanco_MA_BH" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/balanco_MA_BH-282x300.jpg" alt="" width="282" height="300" /></a><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/simetria_LAT_DIENA.jpg"><img class="alignnone size-medium wp-image-1992" title="simetria_LAT_DIENA" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/simetria_LAT_DIENA-221x300.jpg" alt="" width="221" height="300" /></a></p>
<p>Uma forma grande &#8220;atrai&#8221; formas menores como se tivesse gravidade maior. Assim, a foto atrai o título (e o título atrai a foto), uma foto grande atrai fotos menores. No Diena, exemplo de balanço simétrico.</p>
<h3>Proporção</h3>
<p>É a medida de tamanho e quantidade de elementos de uma composição visual.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/proporcao_MA_MET.jpg"><img class="alignnone size-medium wp-image-1985" title="proporcao_MA_MET" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/proporcao_MA_MET-253x300.jpg" alt="" width="253" height="300" /></a></p>
<p>Capa com todos os elementos bem proporcionados.</p>
<h3>Padrão, ritmo, repetição</h3>
<p>Pode ser usado como efeito gráfico (capa abaixo) ou como recurso para obter unidade (como cabeçalhos com número de página).</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/repeticao_BRA^SP_DDSP.jpg"><img class="alignnone size-medium wp-image-1979" title="repeticao_BRA^SP_DDSP" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/repeticao_BRA^SP_DDSP-212x300.jpg" alt="" width="212" height="300" /></a></p>
<h3>Harmonia</h3>
<p>É a combinação de unidade, contraste, balanço, variedade etc na obtenção  de um todo agradável ao observador. É o objetivo de todo projeto  gráfico.</p>
<h3>Bibliografia</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Principles_of_art">http://en.wikipedia.org/wiki/Principles_of_art</a></li>
<li><a href="http://char.txa.cornell.edu/language/introlan.htm">http://char.txa.cornell.edu/language/introlan.htm</a></li>
</ul>
<p>&nbsp;</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/" rel="bookmark" class="crp_title">Elementos da linguagem visual do Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/principios-e-elementos-do-design-2/" rel="bookmark" class="crp_title">Princípios e elementos do Design</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/20/evite-fotos-do-mesmo-tamanho-na-mesma-pagina/" rel="bookmark" class="crp_title">Evite fotos do mesmo tamanho na mesma página</a></li><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/caminhos-da-visao/" rel="bookmark" class="crp_title">Caminhos da visão</a></li><li><a href="http://meiradarocha.jor.br/news/2010/05/17/criar-publicacao-e-paginas-com-scribus/" rel="bookmark" class="crp_title">Como criar publicação e páginas com Scribus</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Elementos da linguagem visual do Jornalismo</title>
		<link>http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/</link>
		<comments>http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 14:17:53 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>
		<category><![CDATA[Diagramação]]></category>
		<category><![CDATA[Jornalismo]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=1952</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Elementos+da+linguagem+visual+do+Jornalismo&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-03-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/&amp;rft.language=Portuguese"></span>
Os elementos da linguagem visual do Jornalismo são as &#8220;palavras&#8221; visuais que formam o dicionário do designer de jornal. Foram desenvolvidos ao longo da história da arte e compilados principalmente...]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Elementos+da+linguagem+visual+do+Jornalismo&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=Design+Gr%C3%A1fico&amp;rft.subject=Diagrama%C3%A7%C3%A3o&amp;rft.subject=Jornalismo&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-03-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=1952"><!-- &nbsp; --></abbr>
<p>Os elementos da linguagem visual do Jornalismo são as &#8220;palavras&#8221; visuais que formam o dicionário do designer de jornal. Foram desenvolvidos ao longo da história da arte e compilados principalmente pela escola <a href="http://pt.wikipedia.org/wiki/Bauhaus">Bauhaus</a>, na primeira metade do século 20, na Alemanha. Estas palavras gráficas são combinadas segundo uma gramática visual, os <a href="http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/">Princípios da Linguagem Visual</a>, para formar &#8220;frases ou sentenças visuais&#8221;.</p>
<p>Os elementos da linguagem visual são estes:</p>
<h3>A linha</h3>
<p>Marca que une dois pontos.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/linha_SD_AN.jpg"><img class="size-medium wp-image-1955 alignnone" title="linha_SD_AN" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/linha_SD_AN-150x300.jpg" alt="" width="150" height="300" /></a></p>
<h3>O contorno</h3>
<p>Áreas. Formas em um espaço bidimensional.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contorno_VA_DPRESS.jpg"><img class="alignnone size-medium wp-image-1959" title="contorno_VA_DPRESS" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contorno_VA_DPRESS-149x300.jpg" alt="" width="149" height="300" /></a><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contorno_TX_VA1.jpg"><img class="alignnone size-medium wp-image-1958" title="contorno_TX_VA" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/contorno_TX_VA1-175x300.jpg" alt="" width="175" height="300" /></a></p>
<h3>Espaço</h3>
<p>Área com largura, altura e sensação de profundidade. Na folha plana, o espaço tridimensional é expresso com claros-escuros.</p>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/forma_NY_DN.jpg"><img class="alignnone size-medium wp-image-1960" title="forma_NY_DN" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/forma_NY_DN-240x300.jpg" alt="" width="240" height="300" /></a></p>
<p>Nesta capa, temos a combinação de contornos de letras (espaço bidimensional) e forma de cabeça (forma aparentemente tridimensional).</p>
<h3>Textura</h3>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/textura_CA_VDDN.jpg"><img class="alignnone size-medium wp-image-1964" title="textura_CA_VDDN" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/textura_CA_VDDN-179x300.jpg" alt="" width="179" height="300" /></a></p>
<p>Todo texto impresso forma uma textura, principalmente as colunas de texto pequeno. As fotos também podem formar texturas, como o campo de flores nesta capa.</p>
<h3>Cor</h3>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor_DC_TE.jpg"><img class="alignnone size-medium wp-image-1965" title="cor_DC_TE" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor_DC_TE-259x300.jpg" alt="" width="259" height="300" /></a><img class="alignnone size-medium wp-image-1966" title="cor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor-300x210.jpg" alt="" width="300" height="210" /><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor_MN_PP.jpg"><img class="alignnone size-medium wp-image-1988" title="cor_MN_PP" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/cor_MN_PP-154x300.jpg" alt="" width="154" height="300" /></a></p>
<p>Exemplos de uso de cor: aplicação caótica, uso harmônico, repetição salientando a cor.</p>
<h3>Valor</h3>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/valor.jpg"><img class="alignnone size-medium wp-image-1969" title="valor" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/valor-300x210.jpg" alt="" width="300" height="210" /></a></p>
<blockquote><p>Valor refere-se ao uso de claro e escuro, sombra e destaque, em uma obra de arte. Fotografia preto e branco depende inteiramente de valor para definir seu assunto. O valor está diretamente relacionado com o contraste. Valor é a escuridão e claridade de um objeto, dependendo de como a luz é mostrada. (Wikipedia)</p></blockquote>
<p>&nbsp;</p>
<h3>Bibliografia</h3>
<ul>
<li><a href="http://char.txa.cornell.edu/language/element/element.htm">http://char.txa.cornell.edu/language/element/element.htm</a></li>
<li><a href="http://www.johnlovett.com/test.htm">http://www.johnlovett.com/test.htm</a></li>
<li><a href="http://en.wikipedia.org/wiki/Elements_of_art">http://en.wikipedia.org/wiki/Elements_of_art</a></li>
<li><a href="http://www.newseum.org/todaysfrontpages/">http://www.newseum.org/todaysfrontpages/</a></li>
</ul>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2011/03/28/principios-da-linguagem-visual-do-jornalismo/" rel="bookmark" class="crp_title">Princípios da linguagem visual do Jornalismo</a></li><li><a href="http://meiradarocha.jor.br/news/2011/08/19/google-earth-em-linux-como-eliminar-sombras-nos-baloes/" rel="bookmark" class="crp_title">Google Earth em Linux: como eliminar sombras nos balões</a></li><li><a href="http://meiradarocha.jor.br/news/2012/02/02/como-calibrar-a-tela-do-wei-dream-android-y803-mt6516/" rel="bookmark" class="crp_title">Como calibrar a tela do Wei Dream Android (Y803 MT6516)</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/13/principios-e-elementos-do-design-2/" rel="bookmark" class="crp_title">Princípios e elementos do Design</a></li><li><a href="http://meiradarocha.jor.br/news/2011/11/02/montador-de-materia-jornalistica-para-pagemaker/" rel="bookmark" class="crp_title">Montador de matéria jornalística para PageMaker</a></li><li><a href="http://meiradarocha.jor.br/news/2009/09/05/como-inserir-botoes-proxima-pagina-e-pagina-anterior-em-revistas-pdf/" rel="bookmark" class="crp_title">Como inserir botões &#8220;Próxima Página&#8221; e &#8220;Página anterior&#8221; em revistas PDF</a></li><li><a href="http://meiradarocha.jor.br/news/2010/05/17/criar-publicacao-e-paginas-com-scribus/" rel="bookmark" class="crp_title">Como criar publicação e páginas com Scribus</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/03/28/elementos-da-linguagem-visual-do-jornalismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Placa Pixelview PlayTV Hybrid no Linux Ubuntu: primeiras impressões</title>
		<link>http://meiradarocha.jor.br/news/2011/03/17/placa-pixelview-playtv-hybrid-no-linux-ubuntu/</link>
		<comments>http://meiradarocha.jor.br/news/2011/03/17/placa-pixelview-playtv-hybrid-no-linux-ubuntu/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 04:17:10 +0000</pubDate>
		<dc:creator>José Antonio Rocha</dc:creator>
				<category><![CDATA[TV]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://meiradarocha.jor.br/news/?p=1897</guid>
		<description><![CDATA[Saiba como configurar a placa de TV Pixelview PlayTV USB Hybrid no Linux Ubuntu para assistir a TV digital.]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Placa+Pixelview+PlayTV+Hybrid+no+Linux+Ubuntu%3A+primeiras+impress%C3%B5es&amp;rft.aulast=Rocha&amp;rft.aufirst=Jos%C3%A9+Antonio&amp;rft.subject=TV&amp;rft.subject=Video&amp;rft.source=Meira+da+Rocha&amp;rft.date=2011-03-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://meiradarocha.jor.br/news/2011/03/17/placa-pixelview-playtv-hybrid-no-linux-ubuntu/&amp;rft.language=Portuguese"></span>
<abbr class="unapi-id" title="http://meiradarocha.jor.br/news/?p=1897"><!-- &nbsp; --></abbr>
<p><a href="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/playtvusbhybrid_low.jpg"><img class="alignright size-medium wp-image-1901" title="playtvusbhybrid_low" src="http://meiradarocha.jor.br/news/wp-content/uploads/2011/03/playtvusbhybrid_low-300x201.jpg" alt="" width="300" height="201" /></a>O kernel Linux 2.6.38 já traz suporte para a placa de TV <a href="http://www.pixelview.com.br/playtv_usb_hybrid.asp">Pixelview PlayTV USB Hybrid</a> no Linux Ubuntu. Com esta placa, é possível se assistir a TV digital brasileira SBTVD em <em>fullseg</em> (1920&#215;1080) e <em>1seg</em> (360&#215;240), além da TV standard. Também permite gravação de fontes externas analógicas &#8212; como receptores de satélite e filmadoras &#8212; pelas entradas Composite (conector RCA amarelo), S-Video e RF, em resolução 720&#215;480. Além disto, capta rádio FM.</p>
<p>O Linux reconhece os chips <strong>Conexant cx23102</strong> e <strong>Fujitsu mb86a20s</strong> graças ao trabalho do professor brasileiro <a href="http://www.plaxo.com/directory/profile/128849566906/5923cb1c/Mauro/Chehab"><strong>Mauro Carvalho Chehab</strong></a> (mchehabΘredhat·com), mantenedor dos módulos multimídia do Linux e um dos 30 maiores colaboradores deste sistema operacional livre. Um trabalho fundamental no momento em que o Brasil deflagra uma ofensiva diplomática-cultural-comercial na difusão do padrão <a href="http://pt.wikipedia.org/wiki/ISDB-TB">ISDB-TB</a> em países do hemisfério sul.</p>
<h3>Hacking TV</h3>
<p>O comando <strong>lsusb</strong>, que lista os dispositivos USB, reporta:</p>
<pre>Bus 001 Device 002: ID <strong>1554:5010</strong> Prolink Microsystems Corp.</pre>
<p>Vendor ID é 1554 e Product ID é 5010.</p>
<p>O comando &#8220;<strong>modinfo cx231xx</strong>&#8221; reporta os parâmetros do módulo Linux <strong>cx231xx</strong> :</p>
<ul>
<li><strong>pcb_debug:</strong> enable pcb config debug messages [video] (int)</li>
<li><strong>mpegbufs:</strong> number of mpeg buffers, range 2-32 (int)</li>
<li><strong>mpeglines:</strong> number of lines in an MPEG buffer, range 2-32 (int)</li>
<li><strong>mpeglinesize:</strong> number of bytes in each line of an MPEG buffer, range 512-1024 (int)</li>
<li><strong>v4l_debug:</strong> enable V4L debug messages (int)</li>
<li><strong>core_debug:</strong> enable debug messages [core] (int)</li>
<li><strong>reg_debug:</strong> enable debug messages [URB reg] (int)</li>
<li><strong>alt:</strong> alternate setting to use for video endpoint (int)</li>
<li><strong>tuner:</strong> tuner type (int)</li>
<li><strong>transfer_mode:</strong> transfer mode (1-ISO or 0-BULK) (int)</li>
<li><strong>disable_ir:</strong> disable infrared remote support (int)</li>
<li><strong>i2c_scan:</strong> scan i2c bus at insmod time (int)</li>
<li><strong>i2c_debug:</strong> enable debug messages [i2c] (int)</li>
<li><strong>isoc_debug:</strong> enable debug messages [isoc transfers] (int)</li>
<li><strong>card:</strong> card type (array of int)</li>
<li><strong>video_nr:</strong> video device numbers (array of int)</li>
<li><strong>vbi_nr:</strong> vbi device numbers (array of int)</li>
<li><strong>radio_nr:</strong> radio device numbers (array of int)</li>
<li><strong>video_debug:</strong> enable debug messages [video] (int)</li>
</ul>
<p>No Ubuntu, estes parâmetros devem ser passados no arquivo <strong>/etc/modprobe.d/cx231xx.conf</strong> para serem automaticamente configurados no <em>boot</em>. Por exemplo, a ordem dos dispositivos de vídeo, rádio e <em>closed captions</em> pode ser definida com esta linha no arquivo:</p>
<pre>options cx231xx video_nr=2 radio_nr=2 vbi_nr=2</pre>
<p>Assim, posso ter a webcâmera como dispositivo <strong>/dev/video0</strong>, a placa de TV PCI como <strong>/dev/video1</strong> e a placa de TV USB como <strong>/dev/video2</strong></p>
<p>O arquivo de log /var/log/dmesg reporta:</p>
<pre>cx231xx #0: cx231xx #0: v4l2 driver version 0.0.1
cx231xx #0: cx231xx_dif_set_standard: setStandard to 100
cx231xx #0: video_mux : 0
cx231xx #0: do_mode_ctrl_overrides : 0x100
cx231xx #0: do_mode_ctrl_overrides NTSC
cx231xx #0: cx231xx #0/0: registered device video0 [v4l2]
cx231xx #0: cx231xx #0/0: registered device vbi1
cx231xx #0: V4L2 device registered as video0 and vbi1
Registered IR keymap rc-pixelview-002t
input: i2c IR (Pixelview PlayTV USB Hy as /devices/virtual/rc/rc1/input6
rc1: i2c IR (Pixelview PlayTV USB Hy as /devices/virtual/rc/rc1
ir-kbd-i2c: i2c IR (Pixelview PlayTV USB Hy detected at i2c-2/2-0030/ir0 [cx231xx #0]
cx231xx #0: EndPoint Addr 0x84, Alternate settings: 5
cx231xx #0: Alternate setting 0, max size= 512
cx231xx #0: Alternate setting 1, max size= 184
cx231xx #0: Alternate setting 2, max size= 728
cx231xx #0: Alternate setting 3, max size= 2892
cx231xx #0: Alternate setting 4, max size= 1800
cx231xx #0: EndPoint Addr 0x85, Alternate settings: 2
cx231xx #0: Alternate setting 0, max size= 512
cx231xx #0: Alternate setting 1, max size= 512
cx231xx #0: EndPoint Addr 0x86, Alternate settings: 2
cx231xx #0: Alternate setting 0, max size= 512
cx231xx #0: Alternate setting 1, max size= 576
cx231xx #0: EndPoint Addr 0x81, Alternate settings: 6
cx231xx #0: Alternate setting 0, max size= 512
cx231xx #0: Alternate setting 1, max size= 64
cx231xx #0: Alternate setting 2, max size= 128
cx231xx #0: Alternate setting 3, max size= 316
cx231xx #0: Alternate setting 4, max size= 712
cx231xx #0: Alternate setting 5, max size= 1424
usbcore: registered new interface driver cx231xx
cx231xx #0: cx231xxcx231xx: called cx231xx_uninit_vbi_isoc
cx231xx #0: cx231xx_stop_stream():: ep_mask = 10
cx231xx #0:  setPowerMode::mode = 32, No Change req.
cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
cx231xx #0: cx231xx-audio.c: probing for cx231xx non standard usbaudio
cx231xx #0: EndPoint Addr 0x83, Alternate settings: 3
cx231xx #0: Alternate setting 0, max size= 512
cx231xx #0: Alternate setting 1, max size= 28
cx231xx #0: Alternate setting 2, max size= 52
cx231xx: Cx231xx Audio Extension initialized
dvb_init: looking for demod on i2c bus: 2
mb86a20s: mb86a20s_attach:
Detected a Fujitsu mb86a20s frontend
tda18271 2-0060: attaching existing instance
DVB: registering new adapter (cx231xx #0)
DVB: registering adapter 0 frontend 0 (Fujitsu mb86A20s)...
Successfully loaded cx231xx-dvb
cx231xx: Cx231xx dvb Extension initialized</pre>
<p>O módulo cx231xx reconhece o chip <a href="http://www.conexant.com/servlets/DownloadServlet/PBR-201370-005.pdf?docid=1371&amp;revid=5">cx23102</a>, decodificador de áudio e vídeo USB e receptor de infravermelho. Segundo sua <em>datasheet</em>, ele suporta os seguintes formatos de vídeo: Composite, S-Video, 480i YPrPb, RGB Packed, YCrCb Packed, 10-bit Packed, e YCrCb/YUY2. O receptor infravermelho do chip também foi detectado.</p>
<p>O sintonizador híbrido analógico e digital de TV e FM foi reconhecido como <a href="http://pdf1.alldatasheet.com/datasheet-pdf/view/255517/NXP/TDA18271HD/C2.html">TDA1827HD/C2</a> .</p>
<p>O comando v4l-info (informações Video For Linux) reportou:</p>
<pre>### v4l2 device info [/dev/video2] ###
general info
 VIDIOC_QUERYCAP
 driver                  : "cx231xx"
 card                    : "Pixelview PlayTV USB Hybrid"
 bus_info                : "usb-0000:00:1a.7-4"
 version                 : 0.0.1
 capabilities            : 0x5030011 [VIDEO_CAPTURE,VBI_CAPTURE,TUNER,AUDIO,READWRITE,STREAMING]

standards
 VIDIOC_ENUMSTD(0)
 index                   : 0
 id                      : 0xb000 [NTSC_M,NTSC_M_JP,?]
 name                    : "NTSC"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(1)
 index                   : 1
 id                      : 0x1000 [NTSC_M]
 name                    : "NTSC-M"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(2)
 index                   : 2
 id                      : 0x2000 [NTSC_M_JP]
 name                    : "NTSC-M-JP"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(3)
 index                   : 3
 id                      : 0x8000 [?]
 name                    : "NTSC-M-KR"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(4)
 index                   : 4
 id                      : 0x4000 [?]
 name                    : "NTSC-443"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(5)
 index                   : 5
 id                      : 0xff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K]
 name                    : "PAL"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(6)
 index                   : 6
 id                      : 0x7 [PAL_B,PAL_B1,PAL_G]
 name                    : "PAL-BG"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(7)
 index                   : 7
 id                      : 0x8 [PAL_H]
 name                    : "PAL-H"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(8)
 index                   : 8
 id                      : 0x10 [PAL_I]
 name                    : "PAL-I"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(9)
 index                   : 9
 id                      : 0xe0 [PAL_D,PAL_D1,PAL_K]
 name                    : "PAL-DK"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(10)
 index                   : 10
 id                      : 0x100 [PAL_M]
 name                    : "PAL-M"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(11)
 index                   : 11
 id                      : 0x200 [PAL_N]
 name                    : "PAL-N"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(12)
 index                   : 12
 id                      : 0x400 [PAL_Nc]
 name                    : "PAL-Nc"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(13)
 index                   : 13
 id                      : 0x800 [PAL_60]
 name                    : "PAL-60"
 frameperiod.numerator   : 1001
 frameperiod.denominator : 30000
 framelines              : 525
 VIDIOC_ENUMSTD(14)
 index                   : 14
 id                      : 0xff0000 [SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB]
 name                    : "SECAM"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(15)
 index                   : 15
 id                      : 0x10000 [SECAM_B]
 name                    : "SECAM-B"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(16)
 index                   : 16
 id                      : 0x40000 [SECAM_G]
 name                    : "SECAM-G"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(17)
 index                   : 17
 id                      : 0x80000 [SECAM_H]
 name                    : "SECAM-H"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(18)
 index                   : 18
 id                      : 0x320000 [SECAM_D,SECAM_K,SECAM_K1]
 name                    : "SECAM-DK"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(19)
 index                   : 19
 id                      : 0x400000 [SECAM_L]
 name                    : "SECAM-L"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625
 VIDIOC_ENUMSTD(20)
 index                   : 20
 id                      : 0x800000 [?ATSC_8_VSB]
 name                    : "SECAM-Lc"
 frameperiod.numerator   : 1
 frameperiod.denominator : 25
 framelines              : 625

inputs
 VIDIOC_ENUMINPUT(0)
 index                   : 0
 name                    : "Television"
 type                    : TUNER
 audioset                : 0
 tuner                   : 0
 std                     : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB]
 status                  : 0x0 []
 VIDIOC_ENUMINPUT(1)
 index                   : 1
 name                    : "Composite1"
 type                    : CAMERA
 audioset                : 0
 tuner                   : 0
 std                     : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB]
 status                  : 0x0 []
 VIDIOC_ENUMINPUT(2)
 index                   : 2
 name                    : "S-Video"
 type                    : CAMERA
 audioset                : 0
 tuner                   : 0
 std                     : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB]
 status                  : 0x0 []

tuners
 VIDIOC_G_TUNER(0)
 index                   : 0
 name                    : "Tuner"
 type                    : ANALOG_TV
 capability              : 0x2 [NORM]
 rangelow                : 0
 rangehigh               : 4294967295
 rxsubchans              : 0x0 []
 audmode                 : MONO
 signal                  : 65535
 afc                     : 0

video capture
 VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
 index                   : 0
 type                    : VIDEO_CAPTURE
 flags                   : 0
 description             : "16bpp YUY2, 4:2:2, packed"
 pixelformat             : 0x56595559 [YUYV]
 VIDIOC_G_FMT(VIDEO_CAPTURE)
 type                    : VIDEO_CAPTURE
 fmt.pix.width           : 640
 fmt.pix.height          : 480
 fmt.pix.pixelformat     : 0x56595559 [YUYV]
 fmt.pix.field           : INTERLACED
 fmt.pix.bytesperline    : 1280
 fmt.pix.sizeimage       : 614400
 fmt.pix.colorspace      : SMPTE170M
 fmt.pix.priv            : 0

vbi capture
 VIDIOC_G_FMT(VBI_CAPTURE)
 type                    : VBI_CAPTURE
 fmt.vbi.sampling_rate   : 27000000
 fmt.vbi.offset          : 0
 fmt.vbi.samples_per_line: 1440
 fmt.vbi.sample_format   : 0x59455247 [GREY]
 fmt.vbi.start[0]        : 10
 fmt.vbi.start[1]        : 273
 fmt.vbi.count[0]        : 12
 fmt.vbi.count[1]        : 12
 fmt.vbi.flags           : 0

controls
 VIDIOC_QUERYCTRL(BASE+0)
 id                      : 9963776
 type                    : INTEGER
 name                    : "Brightness"
 minimum                 : 0
 maximum                 : 255
 step                    : 1
 default_value           : 128
 flags                   : 32
 VIDIOC_QUERYCTRL(BASE+1)
 id                      : 9963777
 type                    : INTEGER
 name                    : "Contrast"
 minimum                 : 0
 maximum                 : 127
 step                    : 1
 default_value           : 64
 flags                   : 32
 VIDIOC_QUERYCTRL(BASE+2)
 id                      : 9963778
 type                    : INTEGER
 name                    : "Saturation"
 minimum                 : 0
 maximum                 : 127
 step                    : 1
 default_value           : 64
 flags                   : 32
 VIDIOC_QUERYCTRL(BASE+3)
 id                      : 9963779
 type                    : INTEGER
 name                    : "Hue"
 minimum                 : -128
 maximum                 : 127
 step                    : 1
 default_value           : 0
 flags                   : 32</pre>
<p>Os parâmetros de brilho, contraste, matiz, saturação e volume podem ser controlados interativamente pelo programa <strong>GUVCViewer</strong>. O programa <strong>v4l2ucp</strong> lê os parâmetros mas mostra-os desabilitados para mudanças.</p>
<p>O programa <strong>v4l2ctrl </strong>permite gravar e ler estes parâmetros por linha de comando. Pode ser colocado num ícone no painel, para acesso fácil. POr exemplo, a linha abaixo salva num arquivo os parâmetros. Trocar o &#8220;-s&#8221; por &#8220;-l&#8221; causa o carregamento dos parâmetros.</p>
<pre>v4l2ctrl -d /dev/video2 -s sbtvd.conf</pre>
<h3>Áudio</h3>
<p>Os dispositivos de áudio podem ser listados com o comando &#8220;cat /proc/asound/cards&#8221;:</p>
<pre>meira@P5QL-E:~$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf9ff8000 irq 44
 1 [FM801AU        ]: FM801 - ForteMedia FM801-AU
                      ForteMedia FM801-AU at 0xe480, irq 17
 2 [Cx231xxAudio   ]: Cx231xx-Audio - Cx231xx Audio
                      Conexant cx231xx Audio
 3 [U0x93a0x2620   ]: USB-Audio - USB Device 0x93a:0x2620
                      USB Device 0x93a:0x2620 at usb-0000:00:1a.1-1, full speed</pre>
<p>E também podemos listar os identificadores de hardware com &#8220;cat /proc/asound/pcm&#8221;:</p>
<pre>meira@P5QL-E:~$ cat /proc/asound/pcm
00-00: ALC1200 Analog : ALC1200 Analog : playback 1 : capture 1
00-02: ALC1200 Analog : ALC1200 Analog : capture 1
00-03: ALC1200 Digital : ALC1200 Digital : playback 1
01-00: FM801 : FM801 : playback 1 : capture 1
<strong>02-00: Cx231xx Audio</strong> : Conexant cx231xx Capture : capture 1
03-00: USB Audio : USB Audio : capture 1</pre>
<p>Com esta informação, sabemos que o dispositivo deve ser identificado como <strong>hw:2,0</strong> em programas como <strong>mencoder</strong>. Neste caso, os parâmetros do mencoder seriam: &#8220;-tv device=/dev/video2:adevice=hw<strong><span style="color: #ff0000;">.</span></strong>2,0&#8243;. Note que o mencoder exige <strong>ponto</strong> em vez de <strong>dois pontos</strong> nos nomes de dipositivos ALSA, já que o &#8220;<strong>:</strong>&#8221; é usado como separador de parâmetros.</p>
<p>O programa <strong>amixer</strong>, no entanto, não lista nenhum controle de volume no dispositivo 2 (comando &#8220;amixer -c 2&#8243;).</p>
<p>O programa <strong>alsamixer</strong> (comando &#8220;alsamixer -c 2&#8243;) no terminal revela que o dispositivo não possui nenhum controle.</p>
<p>O programa <strong>arecord</strong> (comando &#8220;arecord -l&#8221;) lista todos os dispositivos de captura de áudio:</p>
<pre>meira@P5QL-E:~$ arecord -l
**** Lista de Dispositivos CAPTURE Hardware ****
placa 0: Intel [HDA Intel], dispositivo 0: ALC1200 Analog [ALC1200 Analog]
 Dispositivo secundário: 1/1
 Dispositivo secundário #0: subdevice #0
placa 0: Intel [HDA Intel], dispositivo 2: ALC1200 Analog [ALC1200 Analog]
 Dispositivo secundário: 1/1
 Dispositivo secundário #0: subdevice #0
placa 1: FM801AU [ForteMedia FM801-AU], dispositivo 0: FM801 [FM801]
 Dispositivo secundário: 1/1
 Dispositivo secundário #0: subdevice #0
placa 2: <strong>Cx231xxAudio [Cx231xx Audio]</strong>, dispositivo 0: Cx231xx Audio [Conexant cx231xx Capture]
 Dispositivo secundário: 1/1
 Dispositivo secundário #0: subdevice #0
placa 3: U0x93a0x2620 [USB Device 0x93a:0x2620], dispositivo 0: USB Audio [USB Audio]
 Dispositivo secundário: 1/1
 Dispositivo secundário #0: subdevice #0</pre>
<p>Com o programa de visualização de TV TVtime ligado, consegui gravar o áudio da TV analógica com programa Audacity pelo canal <strong>cx231xx Audio</strong>.</p>
<p>Até agora, não consegui direcionar o áudio para a saída dos altofalantes. Uma gambiarra que descobri pela rede é usar o programa <strong>sox</strong> para ler uma placa de som e direcionar a saída para outra. O código abaixo é um script para assistir TV com som no <strong>tvtime</strong>. Este <em>workaround</em> exige um pouco mais de processamento e resulta em uns décimos de segundos de <em>delay</em> &#8212; atraso de som.</p>
<pre>#!/bin/sh

sox -r 48000 -t alsa hw:1,0 -t alsa pulse &amp;
mpid=$!
smplayer tv:///1
kill $mpid</pre>
<p>Já a gravação de áudio e vídeo se deu sem problemas, pela entrada S-Video e áudio RCA, com a linha de comandos:</p>
<pre><strong>mencoder</strong> \
-noskip \
tv:///2 \
-tv norm=PAL-M\
:device=<strong>/dev/video2</strong>\
:driver=v4l2\
:outfmt=i420\
:width=720:height=480\
:fps=29.97\
:alsa\
:<strong>adevice=hw.2,0</strong>\
:amode=1\
:buffersize=200\
:brightness=10:contrast=-25 \
-ffourcc divx \
-oac mp3lame \
-lameopts cbr:preset=128 \
-ovc lavc \
-lavcopts vcodec=mpeg4\
:vbitrate=1400\
:threads=2\
:autoaspect \
-vf dsize=4/3 \
-vf-add scale \
-vf-add kerndeint=10:0:0:1:1 \
-vf-add softskip,harddup \
-endpos 02:10:00 \
-o ~/videos/tv-svideo-sbtvd-mpeg4-mp3-$$.avi</pre>
<h3>Saiba mais</h3>
<ul>
<li><a href="http://dougsland.livejournal.com/103169.html">Linux e o Sistema Brasileiro de TV Digital</a>. Como configurar o VLC para assistir TV Digital.</li>
<li><a href="http://www.vivaolinux.com.br/script/Configuracao-da-placa-Pixel-View-Hybrid-semiautomatizada">Configuração da placa Pixel View Hybrid semiautomatizada </a></li>
</ul>
<p>&nbsp;</p>
<div id="crp_related"><h3>Leia mais</h3><ul><li><a href="http://meiradarocha.jor.br/news/2010/11/15/instalar-controle-remoto-pixelview-playtv-pro-linux/" rel="bookmark" class="crp_title">Como instalar o controle remoto PixelView PlayTV Pro no Linux</a></li><li><a href="http://meiradarocha.jor.br/news/2010/03/30/gravando-tv-com-linux-ubuntu/" rel="bookmark" class="crp_title">Gravando TV com Linux Ubuntu</a></li><li><a href="http://meiradarocha.jor.br/news/2007/08/06/sintonize_net_digital_com_playtv_pro/" rel="bookmark" class="crp_title">Sintonize a Net Digital no Windows com placa PixelView PlayTV Pro</a></li><li><a href="http://meiradarocha.jor.br/news/2010/07/04/como-configurar-o-tablet-genius-wizardpen-4x3-no-ubuntu-10-04-lucid/" rel="bookmark" class="crp_title">Como configurar o tablet Genius WizardPen 4&#215;3 no Ubuntu</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/15/virtualvcr-sincronizacao-de-audio/" rel="bookmark" class="crp_title">VirtualVCR: sincronização de áudio</a></li><li><a href="http://meiradarocha.jor.br/news/2007/06/06/gravacao-digital-de-tv-2/" rel="bookmark" class="crp_title">Gravação digital de TV</a></li><li><a href="http://meiradarocha.jor.br/news/2007/09/07/programa-gratuito-para-fazer-tutoriais/" rel="bookmark" class="crp_title">Programa gratuito para fazer tutoriais: CamStudio</a></li><li>Servido por <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://meiradarocha.jor.br/news/2011/03/17/placa-pixelview-playtv-hybrid-no-linux-ubuntu/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
	</channel>
</rss>

