<?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/"
	>

<channel>
	<title>For Fun and Profit &#187; Desenvolvimento</title>
	<atom:link href="http://www.angusyoung.org/tags/tecnologia/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.angusyoung.org</link>
	<description>Um blog sobre ciência e tecnologia</description>
	<pubDate>Thu, 11 Jun 2009 16:19:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Thanks for the memory</title>
		<link>http://www.angusyoung.org/2009/06/01/thanks-for-the-memory/</link>
		<comments>http://www.angusyoung.org/2009/06/01/thanks-for-the-memory/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 00:05:58 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=288</guid>
		<description><![CDATA[Excelente texto da IBM Developer Works sobre gerenciamento de memória no OS e gerenciamento de memória de uma JVM.
]]></description>
			<content:encoded><![CDATA[<p>Excelente <a title="Thanks For the Memory" href="http://www.ibm.com/developerworks/linux/library/j-nativememory-linux/index.html?ca=dgr-lnxw07Linux-JVM&amp;S_TACT=105AGX59&amp;S_CMP=grlnxw07">texto </a>da IBM Developer Works sobre gerenciamento de memória no OS e gerenciamento de memória de uma JVM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2009/06/01/thanks-for-the-memory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Benchmarks do Firefox</title>
		<link>http://www.angusyoung.org/2009/02/27/benchmarks-do-firefox/</link>
		<comments>http://www.angusyoung.org/2009/02/27/benchmarks-do-firefox/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 05:59:05 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Arch Linux]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=269</guid>
		<description><![CDATA[Com toda essa discussão sobre benchmarks do Firefox, GCC, ICC, etc. Hoje resolvi fazer uns testes de desempenho do Firefox no Arch Linux versus Firefox no Windows.  No Arch, por não saber ao certo qual seria mais adequado, escolhi dois pacotes da AUR: firefox-optimized e firefox-pgo. Ambos foram compilados com -march=x86_64 -mtune=generic -O2 -fomit-frame-pointer -pipe [...]]]></description>
			<content:encoded><![CDATA[<p>Com toda essa discussão sobre benchmarks do Firefox, GCC, ICC, etc. Hoje resolvi fazer uns testes de desempenho do Firefox no Arch Linux versus Firefox no Windows.  No Arch, por não saber ao certo qual seria mais adequado, escolhi dois pacotes da AUR: firefox-optimized e firefox-pgo. Ambos foram compilados com <em>-march=x86_64 -mtune=generic -O2 -fomit-frame-pointer -pipe</em> (todas essas flags estavam por PADRÃO no arquivo <em>makepkg.conf</em> do Arch).</p>
<p><span id="more-269"></span></p>
<pre><strong>pacote:  aur/firefox-optimized 3.0.6-r1</strong>
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 2566.8ms +/- 5.1%
--------------------------------------------

<strong>pacote: aur/firefox-pgo 3.0.6-r1</strong>
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 2458.4ms +/- 1.5%
--------------------------------------------</pre>
<p>No Windows XP, na mesma máquina, o firefox foi ligeiramente mais lento. Neste caso utilizei o Firefox baixado direto do site do Mozilla e obtive o seguinte resultado:</p>
<pre id="console"><strong>pacote: build do Mozilla</strong>
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 2633.2ms +/- 1.1%
--------------------------------------------</pre>
<p>Curioso que sou, não poderia deixar de testar a versão 3.1 beta2 do Firefox. Então, baixei o beta 2 da versão 3.1 e rodei novamente os testes.</p>
<pre><strong>pacote: aur/firefox-pgo-beta 3.1b2-1</strong>
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 2112.8ms +/- 1.2%
--------------------------------------------</pre>
<p>No windows, entretanto, temos uma incrível surpresa: o benchmark dá uma surra de sensacional na versão do Linux:</p>
<pre id="console"><strong>pacote: build do Mozilla
</strong>============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 1117.0ms +/- 1.5%
--------------------------------------------</pre>
<p>Como eu tinha ficado intrigado com as CFLAGS que estavam por padrão no makepkg.conf devido a suas inconsistências, resolvi configurar eu mesmo, recompilar e ver o que acontecia. Para este teste escolhi <em>-march=core2 -O2 -msse4 -pipe</em>, que é um conjunto &#8220;seguro&#8221; de opções com o GCC 4.3.3.  Após recompilar, rodei mais um teste e não houve qualquer variação significativa no resultado anterior (ficou pouco mais de 5ms mais lento).</p>
<p>A unica coisa que faltava era verificar se o <a title="TM" href="https://wiki.mozilla.org/JavaScript:TraceMonkey">TraceMonkey</a> estava habilitado e testar com ele. Após uma rápida pesquisa descobri que o TM vem habilitado por padrão para Web e que apenas a JIT para interfaces XUL/Chrome vem desabilitada.</p>
<pre id="console"><strong>pacote: aur/firefox-pgo-beta 3.1b2-1 + TraceMonkey (XUL/Chrome)</strong>
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 2109.0ms +/- 1.9%
--------------------------------------------</pre>
<p>Novamente temos uma variação insignificante no desempenho. Desta forma acredito que os principais culpado possam ser o compilador GCC e o próprio código do Firefox para Linux.</p>
<p>Por fim, coisas a considerar:</p>
<ol>
<li>Meu Windows é 32 bits e meu Arch Linux é 64bits</li>
<li>O Arch Linux não é uma distribuição pra usuários leigos. Espera-se que o usuário saiba o que está fazendo (ex: não existe nada para evitar que o usuário coloque -funroll-loops -ffast-math -freetard etc).</li>
<li>O objetivo do post foi ver a diferença de desempenho entre o Firefox + PGO no Linux contra o Firefox + PGO no Windows. Gostaria de ter feito no Mac OS X, mas infelizmente só tenho Mac no laptop.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2009/02/27/benchmarks-do-firefox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Frase do mês</title>
		<link>http://www.angusyoung.org/2009/02/10/frase-do-mes/</link>
		<comments>http://www.angusyoung.org/2009/02/10/frase-do-mes/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 16:49:23 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=248</guid>
		<description><![CDATA[Hoje, lendo o Code Complete 2 topei com essa frase do Dijkstra:
&#8220;The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.&#8221;
Traduzindo:
&#8220;O programador compentente está ciente do tamanho limitado do seu próprio crânio. Ele, então, aborda sua [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje, lendo o Code Complete 2 topei com essa frase do <a title="Edsger W. Dijkstra" href="http://en.wikipedia.org/wiki/Edsger_W._Dijkstra">Dijkstra</a>:</p>
<blockquote><p>&#8220;The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.&#8221;</p></blockquote>
<p>Traduzindo:</p>
<blockquote><p>&#8220;O programador compentente está ciente do tamanho limitado do seu próprio crânio. Ele, então, aborda sua tarefa com total humildade e evita truques espertos como (evita) a peste&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2009/02/10/frase-do-mes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sobre benchmarks de linguagens</title>
		<link>http://www.angusyoung.org/2009/01/27/sobre-benchmarks-de-linguagens/</link>
		<comments>http://www.angusyoung.org/2009/01/27/sobre-benchmarks-de-linguagens/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 02:58:13 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C & C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=242</guid>
		<description><![CDATA[Hoje, não sei como, topei com mais uma comparação de desempenho entre Java em e C++ que, como de costume, gerou uma discussão sem fim. Não que eu ache essas discussões totalmente inúteis: na verdade, você sempre acaba aprendendo/conhecendo alguma coisa nova. O ponto principal e que todo mundo ignora - para meu espanto - [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje, não sei como, topei com mais uma <a title="Java vs. C++" href="http://vitorpamplona.com/wiki/JavaVsC%20com%20Processadores%20CoreX">comparação de desempenho</a> entre Java em e C++ que, como de costume, gerou uma <a href="http://groups.google.com/group/ccppbrasil/browse_thread/thread/d8f94dc5356ebdef/21fb664bbdf69cc7?hl=pt-BR">discussão sem fim</a>. Não que eu ache essas discussões totalmente inúteis: na verdade, você sempre acaba aprendendo/<a title="Uma pequena fábula sobre justo vs. injusto" href="http://shootout.alioth.debian.org/gp4/faq.php#fable">conhecendo</a> alguma coisa nova. O ponto principal e que todo mundo ignora - para meu espanto - é que, quando um programa qualquer em Java é mais rápido que o seu equivalente em C/C++ isso só prova uma coisa: que um programa C/C++ bem escrito consegue processar qualquer coisa bem rápido, inclusive os bytecodes do Java <img src='http://www.angusyoung.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Em tempo, dêem uma olhada nesse <a title="Computer Languages Benchmarks Game" href="http://shootout.alioth.debian.org/gp4/index.php">interessantíssimo</a> conjunto de benchmarks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2009/01/27/sobre-benchmarks-de-linguagens/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MQ Series</title>
		<link>http://www.angusyoung.org/2009/01/20/mq-series/</link>
		<comments>http://www.angusyoung.org/2009/01/20/mq-series/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:56:26 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=229</guid>
		<description><![CDATA[O Vinny, do Use Strict.net está fazendo uma série de posts documentando suas aventuras integrando o Perl com o Websphere MQ, uma das tecnlogias que eu gosto de trabalhar. Ele já começou em grande estilo, documentando em detalhes como instalar o módulo CPAN do MQ no Windows.
O Websphere MQ, para quem não conhece, é um [...]]]></description>
			<content:encoded><![CDATA[<p>O Vinny, do <a href="http://usestrict.net/">Use Strict.net</a> está fazendo uma série de posts documentando suas aventuras integrando o Perl com o Websphere MQ, uma das tecnlogias que eu gosto de trabalhar. Ele já começou em grande estilo, documentando em detalhes como <a href="http://usestrict.net/2009/01/15/perl-installing-mqseries-module-on-windows-xp/">instalar o módulo CPAN do MQ</a> no Windows.</p>
<p>O Websphere MQ, para quem não conhece, é um produto desenvolvido pela IBM que, entre outras coisas, oferece transmissão de mensagens com alto grau de disponibilidade. Esse tipo de tecnlogia é comumente utilizado em grandes arquiteturas orientadas a serviço, com sistemas específicos atuando cada um na sua área de negócio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2009/01/20/mq-series/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hacks do GCC</title>
		<link>http://www.angusyoung.org/2008/11/28/hacks-do-gcc/</link>
		<comments>http://www.angusyoung.org/2008/11/28/hacks-do-gcc/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 14:08:18 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C & C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=203</guid>
		<description><![CDATA[A IBM Developer Works surpreende, mais uma vez, com este excelente texto sobre alguns hacks do GCC utilizados no kernel do Linux. Se você se interessou pelo assunto, confira também os links existentes no post sobre Funcionalidades Obscuras das Linguages de Programação.
]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.ibm.com/developerworks/">IBM Developer Works</a> surpreende, mais uma vez, com <a href="http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/index.html">este</a> excelente texto sobre alguns hacks do GCC utilizados no kernel do Linux. Se você se interessou pelo assunto, confira também os links existentes no post sobre <a href="http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/">Funcionalidades Obscuras das Linguages de Programação</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/11/28/hacks-do-gcc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Documentando com Docbook: aprofundando seu conhecimento</title>
		<link>http://www.angusyoung.org/2008/10/15/documentando-com-docbook-aprofundando-seu-conhecimento/</link>
		<comments>http://www.angusyoung.org/2008/10/15/documentando-com-docbook-aprofundando-seu-conhecimento/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 23:47:18 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=125</guid>
		<description><![CDATA[Interessado em documentar sua aplicação utilizando o formato DocBook? Aqui vão alguns links, em inglês, para aprofundar seu conhecimento a respeito (por ordem de relevância e facilidade):
Gnome Handbook Of Writing Software Documentation
The KDE Docbook Authors Guide
Introducing DocBook
http://wiki.docbook.org/topic/DocBookTutorials
DocBook Demystification HOWTO
DocBook On Windows Bliss
DocBook XSL: The Complete Guide
]]></description>
			<content:encoded><![CDATA[<p>Interessado em documentar sua aplicação utilizando o formato DocBook? Aqui vão alguns links, em inglês, para aprofundar seu conhecimento a respeito (por ordem de relevância e facilidade):</p>
<p><a href="http://developer.gnome.org/projects/gdp/handbook/gdp-handbook/">Gnome Handbook Of Writing Software Documentation</a></p>
<p><a href="http://l10n.kde.org/docs//markup/index.html">The KDE Docbook Authors Guide</a></p>
<p><a href="http://nwalsh.com/docs/tutorials/winwriters2001/index.html">Introducing DocBook</a></p>
<p><a title="DocBookTutorials" href="http://wiki.docbook.org/topic/DocBookTutorials">http://wiki.docbook.org/topic/DocBookTutorials</a></p>
<p><a title="DocBook Demystification HOWTO" href="http://tldp.org/HOWTO/DocBook-Demystification-HOWTO/">DocBook Demystification HOWTO</a></p>
<p><a title="DocBook On Windows Bliss" href="http://www.mawi.org/articles/DocBook_On_Windows_Bliss.html">DocBook On Windows Bliss</a></p>
<p><a href="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/15/documentando-com-docbook-aprofundando-seu-conhecimento/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL vs. PostreSQL</title>
		<link>http://www.angusyoung.org/2008/10/12/mysql-vs-postresql/</link>
		<comments>http://www.angusyoung.org/2008/10/12/mysql-vs-postresql/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 19:05:29 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Banco de Dados]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=188</guid>
		<description><![CDATA[O site BR-Linux.org postou hoje um link para um artigo comparando as características do PostgreSQL e do MySQL. De modo geral, o artigo confirma a superioridade do PostrgreSQL em termos de funcionalidades, mesmo quando comparado com o MySQL e a engine InnoDB, e escabilidade e afirma que o desempenho do PostreSQL pode ser igual ou [...]]]></description>
			<content:encoded><![CDATA[<p>O site BR-Linux.org <a href="http://br-linux.org/2008/quem-e-melhor-mysql-ou-postgresql/">postou</a> hoje um link para um <a href="http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL">artigo</a> comparando as características do <a href="http://www.postgresql.org/">PostgreSQL</a> e do <a href="http://www.mysql.com/">MySQL</a>. De modo geral, o artigo confirma a superioridade do PostrgreSQL em termos de funcionalidades, mesmo quando comparado com o MySQL e a engine InnoDB, e escabilidade e afirma que o desempenho do PostreSQL pode ser igual ou superior a do MySQL sob certas condições.</p>
<p>Deixando de lado todos os aspectos técnicos e, no que diz respeito a resolver os meus problemas, eu prefiro o PostgreSQL, porque considero sua documentação mais acessível e organizada e, eu sei que isso é subjetivo, porque o projeto parece ter uma relação mais saudável com a comunidade de usuários e desenvolvedores. Isso é um tanto quanto irônico, já que meu <a href="http://dev.angusyoung.org">projeto open source</a> atualmente suporta MySQL e não o PostreSQL - pura falta de tempo pra escrever o código.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/12/mysql-vs-postresql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blog sobre Perl</title>
		<link>http://www.angusyoung.org/2008/10/06/blog-sobre-perl/</link>
		<comments>http://www.angusyoung.org/2008/10/06/blog-sobre-perl/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 22:08:37 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=187</guid>
		<description><![CDATA[Meu colega Vinicius, um grande entusiasta do Perl e um hacker no melhor sentido da palavra, está escrevendo um blog sobre Perl, desmistificando os detalhes da linguagem e quebrando várias concepções erradas desta linguagem (muitas das quais, admito, eu mesmo tinha até pouco tempo atrás). Recomendo seriamente.
]]></description>
			<content:encoded><![CDATA[<p>Meu colega Vinicius, um grande entusiasta do Perl e um hacker no melhor sentido da palavra, está escrevendo um <a title="Use Strict" href="http://usestrict.wordpress.com/">blog</a> sobre Perl, desmistificando os detalhes da linguagem e quebrando várias concepções erradas desta linguagem (muitas das quais, admito, eu mesmo tinha até pouco tempo atrás). Recomendo seriamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/06/blog-sobre-perl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testando o Haiku OS</title>
		<link>http://www.angusyoung.org/2008/10/06/testando-o-haiku-os/</link>
		<comments>http://www.angusyoung.org/2008/10/06/testando-o-haiku-os/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 21:51:41 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C & C++]]></category>

		<category><![CDATA[Outros Sistemas]]></category>

		<category><![CDATA[Sistemas Operacionais]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=186</guid>
		<description><![CDATA[Hoje, como eu estava com algumas horas livres enquanto esperava que algumas tarefas ficassem prontas, resolvi instalar o Haiku, um clone livre do finado BeOS pra ver como ele estava.
A idéia era instala-lo em uma máquina virtual dentro do VirtualBox, já que o projeto fornece uma imagem VmWare pronta e, sim o VirtualBox trabalha com [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje, como eu estava com algumas horas livres enquanto esperava que algumas tarefas ficassem prontas, resolvi instalar o <a title="Haiku Project" href="http://www.haiku-os.org/">Haiku</a>, um clone livre do finado <a title="BeOS" href="http://en.wikipedia.org/wiki/BeOS">BeOS</a> pra ver como ele estava.</p>
<p>A idéia era instala-lo em uma máquina virtual dentro do <a title="VirtualBox" href="http://www.virtualbox.org/">VirtualBox</a>, já que o projeto fornece uma imagem VmWare pronta e, sim o VirtualBox trabalha com imagens do <a title="VmWare" href="http://www.vmware.com/">VmWare</a> :). Não é minha intenção fazer um review do sistema, já que ele ainda não está pronto e tem coisas para serem finalizadas, apesar disso devo dizer que o resultado me surpreendeu: ele funcionou sem maiores problemas no VirtualBox. A única alteração que eu tive que fazer foi mudar a placa de rede para uma Intel PRO/1000 MT Desktop, pois a PCnet-Fast III que o VirtualBox usa por padrão não foi reconhecida. No Haiku o único problema foi conseguir instalar um navegador, já que ele não vem (???) com um navegador por padrão. Para isso baixei direto pelo linux, criei uma ISO e montei como CD pelo VirtualBox, uma operação que teve sucesso após reiniciar a máquina virtual.</p>
<p>Enfim, como eu disse, me surpreendi muito com o estado do sistema e tive menos problemas com ele do que com várias distribuições Linux que já tive o desprazer de usar. Outro ponto interessante do projeto é que ele é programado em C++, então é um prato cheio pra quem quiser se envolver com um projeto nessa linguagem. Se alguém quiser conferir o resultado da brincadeira, recomendo que dê uma olhada nas screenshots que eu postei <a title="Haiku Screenshots" href="http://www.angusyoung.org/arquivos/imagens/screenshots/ganymede/haiku/">aqui</a>. Não deixe de conferir, também, a <a title="Entrevista Haiku OS" href="http://meiobit.pop.com.br/meio-bit/open-source/entrevista-bruno-albuquerque-do-projeto-haiku">entrevista</a> de um dos líderes do Projeto, o brasileiro Bruno Albuquerque, feita pelo MeioBit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/06/testando-o-haiku-os/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linguagens de Programação Diferentes</title>
		<link>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/</link>
		<comments>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 23:29:11 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Curiosidades]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Geral]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=123</guid>
		<description><![CDATA[Antes de reclamar que você programa em DataFlex, Genexus, Pro*C/C++ ou Java (obs: considere isso uma piada interna minha e não leve a sério) dê uma olhada nesse interessante post sobre linguagens de programação diferentes. Sua vida poderia ser bem pior &#8230;
]]></description>
			<content:encoded><![CDATA[<p>Antes de reclamar que você programa em <a title="DataFlex" href="http://en.wikipedia.org/wiki/Dataflex">DataFlex</a>, <a title="Genexus" href="http://en.wikipedia.org/wiki/Genexus">Genexus</a>, <a title="Pro*C/C++" href="http://www.angusyoung.org/?s=Pro*C%2FC%2B%2B">Pro*C/C++</a> ou Java (obs: considere isso uma piada interna minha e não leve a sério) dê uma olhada nesse interessante <a title="Linguagens de Programação Diferentes" href="http://marquinh05.com/linguagens-de-programacao-diferentes/">post</a> sobre linguagens de programação diferentes. Sua vida poderia ser bem pior &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Funcionalidades obscuras das linguagens de programação</title>
		<link>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/</link>
		<comments>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 14:23:33 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C & C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=185</guid>
		<description><![CDATA[Recebi um link hoje, num chat via MSN, sobre features escondidas de linguagens de programação.

C
C++
Perl e muitas outras.

Ainda não li por completo, mas achei algumas pérolas, como a história de que implementações antigas do GCC tentavam executar um jogo cada vez que encontrava a diretiva #pragma nos fontes e outras já famosas como os métodos [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi um link hoje, num chat via MSN, sobre <em>features</em> escondidas de linguagens de programação.</p>
<ul>
<li><a href="http://stackoverflow.com/questions/132241/hidden-features-of-c">C</a></li>
<li><a href="http://stackoverflow.com/questions/75538/hidden-features-of-c">C++</a></li>
<li><a href="http://stackoverflow.com/questions/161872/hidden-features-of-perl">Perl e muitas outras</a>.</li>
</ul>
<p>Ainda não li por completo, mas achei algumas pérolas, como a história de que implementações antigas do GCC tentavam executar um jogo cada vez que encontrava a diretiva #pragma nos fontes e outras já famosas como os métodos de branch prediction (previsão de fluxo??) __builtin_expect() do GCC. Não deixe de conferir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Provendo informações uteis na linha de comando</title>
		<link>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/</link>
		<comments>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:24:15 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C & C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Sistemas Operacionais]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=182</guid>
		<description><![CDATA[Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).

Então, conversando com esse amigo a minha sugestão foi modelar a [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).</p>
<p><span id="more-182"></span></p>
<p>Então, conversando com esse amigo a minha sugestão foi modelar a ajuda do programas de linha de comando a partir do modelo utilizado pelo GNU tar. O meu ponto de vista é que o GNU tar não apenas oferece uma quantidade boa de ajuda quando comparado com as alternativas, mas as oferece de maneira organizada. Nada melhor que colocar aqui pra mostrar o que eu falo:</p>
<p>HP UX:</p>
<pre>$ tar -help
tar: usage  tar [-]{txruc}[eONvVwAfblhm{op}][0-7[lmh]] [tapefile] [blocksize]
[[-C directory] file] ...</pre>
<p>Solaris:</p>
<pre>$ tar -help
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqvw[0-7]][bfk][X...] [blocksize] [tarfile]
[size] [exclude-file...] {file | -I include-file | -C directory file}...</pre>
<p>GNU Tar:</p>
<pre>$ tar --help
Usage: tar [OPTION...] [FILE]...</pre>
<pre>GNU `tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.</pre>
<pre>Examples:
tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
tar -tvf archive.tar         # List all files in archive.tar verbosely.
tar -xf archive.tar          # Extract all files from archive.tar.</pre>
<pre>Main operation mode:</pre>
<pre>-A, --catenate, --concatenate   append tar files to an archive
-c, --create               create a new archive
-d, --diff, --compare      find differences between archive and file system
--delete               delete from the archive (not on mag tapes!)
-r, --append               append files to the end of an archive
-t, --list                 list the contents of an archive
--test-label           test the archive volume label and exit
-u, --update               only append files newer than copy in archive
-x, --extract, --get       extract files from an archive</pre>
<pre>Operation modifiers:</pre>
<pre>--check-device         check device numbers when creating incremental
archives (default)
-g, --listed-incremental=FILE   handle new GNU-format incremental backup
-G, --incremental          handle old GNU-format incremental backup
--ignore-failed-read   do not exit with nonzero on unreadable files
-n, --seek                 archive is seekable
--no-check-device      do not check device numbers when creating
incremental archives
--occurrence[=NUMBER]  process only the NUMBERth occurrence of each file
in the archive; this option is valid only in
conjunction with one of the subcommands --delete,
--diff, --extract or --list and when a list of
files is given either on the command line or via
the -T option; NUMBER defaults to 1
--sparse-version=MAJOR[.MINOR]
set version of the sparse format to use (implies
--sparse)
-S, --sparse               handle sparse files efficiently</pre>
<pre>Overwrite control:</pre>
<pre>-k, --keep-old-files       don't replace existing files when extracting
--keep-newer-files     don't replace existing files that are newer than
their archive copies
--no-overwrite-dir     preserve metadata of existing directories
--overwrite            overwrite existing files when extracting
--overwrite-dir        overwrite metadata of existing directories when
extracting (default)
--recursive-unlink     empty hierarchies prior to extracting directory
--remove-files         remove files after adding them to the archive
-U, --unlink-first         remove each file prior to extracting over it
-W, --verify               attempt to verify the archive after writing it</pre>
<pre>Select output stream:</pre>
<pre>--ignore-command-error ignore exit codes of children
--no-ignore-command-error   treat non-zero exit codes of children as
error
-O, --to-stdout            extract files to standard output
--to-command=COMMAND   pipe extracted files to another program</pre>
<pre>Handling of file attributes:</pre>
<pre>--atime-preserve[=METHOD]   preserve access times on dumped files, either
by restoring the times after reading
(METHOD='replace'; default) or by not setting the
times in the first place (METHOD='system')
--delay-directory-restore   delay setting modification times and
permissions of extracted directories until the end
of extraction
--group=NAME           force NAME as group for added files
--mode=CHANGES         force (symbolic) mode CHANGES for added files
--mtime=DATE-OR-FILE   set mtime for added files from DATE-OR-FILE
-m, --touch                don't extract file modified time
--no-delay-directory-restore
cancel the effect of --delay-directory-restore
option
--no-same-owner        extract files as yourself
--no-same-permissions  apply the user's umask when extracting permissions
from the archive (default for ordinary users)
--numeric-owner        always use numbers for user/group names
--owner=NAME           force NAME as owner for added files
-p, --preserve-permissions, --same-permissions
extract information about file permissions
(default for superuser)
--preserve             same as both -p and -s
--same-owner           try extracting files with the same ownership
-s, --preserve-order, --same-order
sort names to extract to match archive</pre>
<pre>Device selection and switching:</pre>
<pre>-f, --file=ARCHIVE         use archive file or device ARCHIVE
--force-local          archive file is local even if it has a colon
-F, --info-script=NAME, --new-volume-script=NAME
run script at end of each tape (implies -M)
-L, --tape-length=NUMBER   change tape after writing NUMBER x 1024 bytes
-M, --multi-volume         create/list/extract multi-volume archive
--rmt-command=COMMAND  use given rmt COMMAND instead of rmt
--rsh-command=COMMAND  use remote COMMAND instead of rsh
--volno-file=FILE      use/update the volume number in FILE</pre>
<pre>Device blocking:</pre>
<pre>-b, --blocking-factor=BLOCKS   BLOCKS x 512 bytes per record
-B, --read-full-records    reblock as we read (for 4.2BSD pipes)
-i, --ignore-zeros         ignore zeroed blocks in archive (means EOF)
--record-size=NUMBER   NUMBER of bytes per record, multiple of 512</pre>
<pre>Archive format selection:</pre>
<pre>-H, --format=FORMAT        create archive of the given format</pre>
<pre>FORMAT is one of the following:</pre>
<pre>gnu                      GNU tar 1.13.x format
oldgnu                   GNU format as per tar &lt;= 1.12
pax                      POSIX 1003.1-2001 (pax) format
posix                    same as pax
ustar                    POSIX 1003.1-1988 (ustar) format
v7                       old V7 tar format</pre>
<pre>--old-archive, --portability
same as --format=v7
--pax-option=keyword[[:]=value][,keyword[[:]=value]]...
control pax keywords
--posix                same as --format=posix
-V, --label=TEXT           create archive with volume name TEXT; at
list/extract time, use TEXT as a globbing pattern
for volume name</pre>
<pre>Compression options:</pre>
<pre>-a, --auto-compress        use archive suffix to determine the compression
program
-j, --bzip2                filter the archive through bzip2
--lzma                 filter the archive through lzma
--use-compress-program=PROG
filter through PROG (must accept -d)
-z, --gzip, --gunzip, --ungzip   filter the archive through gzip
-Z, --compress, --uncompress   filter the archive through compress</pre>
<pre>Local file selection:</pre>
<pre>--add-file=FILE        add given FILE to the archive (useful if its name
starts with a dash)
--backup[=CONTROL]     backup before removal, choose version CONTROL
-C, --directory=DIR        change to directory DIR
--exclude=PATTERN      exclude files, given as a PATTERN
--exclude-caches       exclude contents of directories containing
CACHEDIR.TAG, except for the tag file itself
--exclude-caches-all   exclude directories containing CACHEDIR.TAG
--exclude-caches-under exclude everything under directories containing
CACHEDIR.TAG
--exclude-tag=FILE     exclude contents of directories containing FILE,
except for FILE itself
--exclude-tag-all=FILE exclude directories containing FILE
--exclude-tag-under=FILE   exclude everything under directories
containing FILE
--exclude-vcs          exclude version control system directories
-h, --dereference          follow symlinks; archive and dump the files they
point to
--hard-dereference     follow hard links; archive and dump the files they
refer to
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
--newer-mtime=DATE     compare date and time when data changed only
--no-recursion         avoid descending automatically in directories
--no-unquote           do not unquote filenames read with -T
--null                 -T reads null-terminated names, disable -C
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
only store files newer than DATE-OR-FILE
--one-file-system      stay in local file system when creating archive
-P, --absolute-names       don't strip leading `/'s from file names
--recursion            recurse into directories (default)
--suffix=STRING        backup before removal, override usual suffix ('~'
unless overridden by environment variable
SIMPLE_BACKUP_SUFFIX)
-T, --files-from=FILE      get names to extract or create from FILE
--unquote              unquote filenames read with -T (default)
-X, --exclude-from=FILE    exclude patterns listed in FILE</pre>
<pre>File name transformations:</pre>
<pre>--strip-components=NUMBER   strip NUMBER leading components from file
names on extraction
--transform=EXPRESSION use sed replace EXPRESSION to transform file
names</pre>
<pre>File name matching options (affect both exclude and include patterns):</pre>
<pre>--anchored             patterns match file name start
--ignore-case          ignore case
--no-anchored          patterns match after any `/' (default for
exclusion)
--no-ignore-case       case sensitive matching (default)
--no-wildcards         verbatim string matching
--no-wildcards-match-slash   wildcards do not match `/'
--wildcards            use wildcards (default for exclusion)
--wildcards-match-slash   wildcards match `/' (default for exclusion)</pre>
<pre>Informative output:</pre>
<pre>--checkpoint[=NUMBER]  display progress messages every NUMBERth record
(default 10)
--checkpoint-action=ACTION   execute ACTION on each checkpoint
--index-file=FILE      send verbose output to FILE
-l, --check-links          print a message if not all links are dumped
--no-quote-chars=STRING   disable quoting for characters from STRING
--quote-chars=STRING   additionally quote characters from STRING
--quoting-style=STYLE  set name quoting style; see below for valid STYLE
values
-R, --block-number         show block number within archive with each
message
--show-defaults        show tar defaults
--show-omitted-dirs    when listing or extracting, list each directory
that does not match search criteria
--show-transformed-names, --show-stored-names
show file or archive names after transformation
--totals[=SIGNAL]      print total bytes after processing the archive;
with an argument - print total bytes when this
SIGNAL is delivered; Allowed signals are: SIGHUP,
SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names
without SIG prefix are also accepted
--utc                  print file modification dates in UTC
-v, --verbose              verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action</pre>
<pre>Compatibility options:</pre>
<pre>-o                         when creating, same as --old-archive; when
extracting, same as --no-same-owner</pre>
<pre>Other options:</pre>
<pre>-?, --help                 give this help list
--restrict             disable use of some potentially harmful options
--usage                give a short usage message
--version              print program version</pre>
<pre>Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.</pre>
<pre>The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control may be set with --backup or VERSION_CONTROL, values are:</pre>
<pre>none, off       never make backups
t, numbered     make numbered backups
nil, existing   numbered if numbered backups exist, simple otherwise
never, simple   always make simple backups</pre>
<pre>Valid arguments for --quoting-style options are:</pre>
<pre>literal
shell
shell-always
c
c-maybe
escape
locale
clocale</pre>
<pre>*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/sbin/rmt.exe
--rsh-command=/usr/bin/rsh</pre>
<pre>Report bugs to &lt;bug-tar@gnu.org&gt;.</pre>
<p>Sentiram a diferença?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.466 seconds -->
