<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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>Comentários sobre Blog do PacMan</title>
	<atom:link href="http://pacman.blog.br/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://pacman.blog.br/blog</link>
	<description>Varias Coisas, por Tiago Peczenyj</description>
	<lastBuildDate>Thu, 19 Nov 2009 18:04:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>Comentário sobre Compatibilidade Binária em C por Fernando Meyer</title>
		<link>http://pacman.blog.br/blog/programacao/compatibilidade-binaria-em-c/comment-page-1/#comment-211</link>
		<dc:creator>Fernando Meyer</dc:creator>
		<pubDate>Thu, 19 Nov 2009 18:04:42 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=106#comment-211</guid>
		<description>Lembrando que esse casting precisa respeitar a ordem, um struct por definicao eh uma estrutura linear na memoria, se voce na classe 2 alterar a ordem dos parametros na declaracao, isso com certeza causaria um erro de casting:

ex:
 
&lt;pre lang=&quot;C&quot;&gt;
typedef struct {
	char name[128];
	int id;  		  	
	char rg[128];
} tpessoafisica;&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Lembrando que esse casting precisa respeitar a ordem, um struct por definicao eh uma estrutura linear na memoria, se voce na classe 2 alterar a ordem dos parametros na declaracao, isso com certeza causaria um erro de casting:</p>
<p>ex:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">typedef</span> <span style="color: #993333;">struct</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #993333;">char</span> name<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">128</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #993333;">int</span> id<span style="color: #339933;">;</span>  		  	
	<span style="color: #993333;">char</span> rg<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">128</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> tpessoafisica<span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Compatibilidade Binária em C por Everton J. Carpes</title>
		<link>http://pacman.blog.br/blog/programacao/compatibilidade-binaria-em-c/comment-page-1/#comment-210</link>
		<dc:creator>Everton J. Carpes</dc:creator>
		<pubDate>Thu, 19 Nov 2009 17:16:05 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=106#comment-210</guid>
		<description>C eh poder, e poder eh perigoso!

A concepcao de que existe uma compatibilidade binaria entre duas estruturas eh algo incrivel que abre a possibilidade de considerarmos o polymorphismo, mas ao mesmo tempo exige que os programadores saibam com que tipo de coisa estao lidando.

Obviamente a aritmetica de ponteiros e a correcao dos index de acesso aos elementos (de um array ou de uma estrutura) estao diretamente ligadas a plataforma onde a coisa estah sendo executada e ao se desenvolver com este tipo de estrategia em mente eh importante ter BEM claro quais os limites a serem considerados.

Outro dia ouvi desenvolvedor que C nao era portavel por exemplo, pq voce poderia criar programas que andem por regioes especificas de memoria e isso nao vai funcionar atraves de plataformas/SOs... Clara ma interpretacao tanto do conceito de portabilidade quanto do uso dos mecanismos de acesso a memoria que o C tao elegantemente nos oferece. 

Essa compatibilidade binaria que tu alega tem seus reveses aos quais eh preciso estar atento ao trabalhar... Imagine por exemplo que tu pretenda alocar espaco para trabalhar com estas estruturas... apesar da compatibilidade binaria e do cast te permitir o polymorphismo, ao alocar espaco, tu precisas ter ciencia do tamanho da MAIOR estrutura... Isso em linguagens de nivel superior eh burlado de forma que um array de um determinado objeto nao contem o objeto em si, mas sim uma referencia para ele, o que pode obviamente ser obtido em C com uma array de ponteiros para as structs (o que ao contrario do que muita gente pensa NAO VAI ADICONAR NENHUM IMPACTO DEVIDO A DERREFERENCIA, pois a quantidade de passos para interepretacao eh a mesma que se a struct estivesse de fato na array).

O ponto eh que, embora esse poder seja amplo e interessante, possibiltando os pontos que tu apontou e muitos outros, o programador ao utilziar este tipo de beneficio, precisa estar ciente de suas implicacoes, e muitos nao estao!

A origem disso eh a falta de conhecimento da linguagem e o preconceito que alguns programadores tem sobre certos aspectos... seguindo o exemplo do desenvolvedor que questionou sobre a portabilidade de codigo, no meio da conversa ele falou, que um char ocupa 2 Bytes na memoria, o que eh um pressuposto equivocado baseado no estudo de C especifico das plataformas (antigas) da Intel... Para o C, um char e um int ocupam o mesmissimo espaco na memoria, ateh pq nao existe como se enderecar somente parte de uma palavra e portanto seu espaco eh igual a no minimo o tamanho da palavra... obviamente que para quem programa dentro do padrao, isto nao tem nenhum impacto significativo e passa despercebido, mas certamente quem carrega preconceitos como esse vai ter problemas ao tentar alocar espaco para Strings por exemplo, ou vai sofrer com ponteiros selvagens em algum momento, simplesmente pq pressupos alguma coisa que de fato nao condiz com a realidade da plataforma... O triste eh que essas pessoas se acham, baseado nisso, no direito de sair soltando maximas como: &quot;C nao eh portavel!&quot;... Faltou fazer a licao de casa... #fail

Valeu pelo post Pac, eh muito bom ver alguem resgatando os conceitos que deveriam ser basicos a maioria dos desenvolvedores mas que sao sumariamente ignorados e geram tanta confusao por aih!</description>
		<content:encoded><![CDATA[<p>C eh poder, e poder eh perigoso!</p>
<p>A concepcao de que existe uma compatibilidade binaria entre duas estruturas eh algo incrivel que abre a possibilidade de considerarmos o polymorphismo, mas ao mesmo tempo exige que os programadores saibam com que tipo de coisa estao lidando.</p>
<p>Obviamente a aritmetica de ponteiros e a correcao dos index de acesso aos elementos (de um array ou de uma estrutura) estao diretamente ligadas a plataforma onde a coisa estah sendo executada e ao se desenvolver com este tipo de estrategia em mente eh importante ter BEM claro quais os limites a serem considerados.</p>
<p>Outro dia ouvi desenvolvedor que C nao era portavel por exemplo, pq voce poderia criar programas que andem por regioes especificas de memoria e isso nao vai funcionar atraves de plataformas/SOs&#8230; Clara ma interpretacao tanto do conceito de portabilidade quanto do uso dos mecanismos de acesso a memoria que o C tao elegantemente nos oferece. </p>
<p>Essa compatibilidade binaria que tu alega tem seus reveses aos quais eh preciso estar atento ao trabalhar&#8230; Imagine por exemplo que tu pretenda alocar espaco para trabalhar com estas estruturas&#8230; apesar da compatibilidade binaria e do cast te permitir o polymorphismo, ao alocar espaco, tu precisas ter ciencia do tamanho da MAIOR estrutura&#8230; Isso em linguagens de nivel superior eh burlado de forma que um array de um determinado objeto nao contem o objeto em si, mas sim uma referencia para ele, o que pode obviamente ser obtido em C com uma array de ponteiros para as structs (o que ao contrario do que muita gente pensa NAO VAI ADICONAR NENHUM IMPACTO DEVIDO A DERREFERENCIA, pois a quantidade de passos para interepretacao eh a mesma que se a struct estivesse de fato na array).</p>
<p>O ponto eh que, embora esse poder seja amplo e interessante, possibiltando os pontos que tu apontou e muitos outros, o programador ao utilziar este tipo de beneficio, precisa estar ciente de suas implicacoes, e muitos nao estao!</p>
<p>A origem disso eh a falta de conhecimento da linguagem e o preconceito que alguns programadores tem sobre certos aspectos&#8230; seguindo o exemplo do desenvolvedor que questionou sobre a portabilidade de codigo, no meio da conversa ele falou, que um char ocupa 2 Bytes na memoria, o que eh um pressuposto equivocado baseado no estudo de C especifico das plataformas (antigas) da Intel&#8230; Para o C, um char e um int ocupam o mesmissimo espaco na memoria, ateh pq nao existe como se enderecar somente parte de uma palavra e portanto seu espaco eh igual a no minimo o tamanho da palavra&#8230; obviamente que para quem programa dentro do padrao, isto nao tem nenhum impacto significativo e passa despercebido, mas certamente quem carrega preconceitos como esse vai ter problemas ao tentar alocar espaco para Strings por exemplo, ou vai sofrer com ponteiros selvagens em algum momento, simplesmente pq pressupos alguma coisa que de fato nao condiz com a realidade da plataforma&#8230; O triste eh que essas pessoas se acham, baseado nisso, no direito de sair soltando maximas como: &#8220;C nao eh portavel!&#8221;&#8230; Faltou fazer a licao de casa&#8230; #fail</p>
<p>Valeu pelo post Pac, eh muito bom ver alguem resgatando os conceitos que deveriam ser basicos a maioria dos desenvolvedores mas que sao sumariamente ignorados e geram tanta confusao por aih!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre 10 coisas que todo o programador deveria saber por Raul Libório</title>
		<link>http://pacman.blog.br/blog/dicas/10-coisas-que-todo-o-programador-deveria-saber/comment-page-1/#comment-209</link>
		<dc:creator>Raul Libório</dc:creator>
		<pubDate>Thu, 12 Nov 2009 13:19:27 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=80#comment-209</guid>
		<description>Como n sou programador, mas arranho nos scripts, n posso dizer muita coisa =)
Ah, o link da Catedral tá quebrado =\</description>
		<content:encoded><![CDATA[<p>Como n sou programador, mas arranho nos scripts, n posso dizer muita coisa =)<br />
Ah, o link da Catedral tá quebrado =\</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Não entendo o motivo pelo qual ainda ensinam pascal por Mago</title>
		<link>http://pacman.blog.br/blog/dicas/nao-entendo-o-motivo-pelo-qual-ainda-ensinam-pascal/comment-page-1/#comment-206</link>
		<dc:creator>Mago</dc:creator>
		<pubDate>Thu, 22 Oct 2009 02:23:33 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=95#comment-206</guid>
		<description>perl -e &#039;for(1000..9999){print$_,&quot;-\n&quot;if((int($_/100)+$_%100)==sqrt($_))}&#039;

&gt; v.10

perl -E &#039;for(1000..9999){say$_,if((int($_/100)+$_%100)==sqrt($_))}&#039;</description>
		<content:encoded><![CDATA[<p>perl -e &#8216;for(1000..9999){print$_,&#8221;-\n&#8221;if((int($_/100)+$_%100)==sqrt($_))}&#8217;</p>
<p>&gt; v.10</p>
<p>perl -E &#8216;for(1000..9999){say$_,if((int($_/100)+$_%100)==sqrt($_))}&#8217;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Não entendo o motivo pelo qual ainda ensinam pascal por Juan Castro</title>
		<link>http://pacman.blog.br/blog/dicas/nao-entendo-o-motivo-pelo-qual-ainda-ensinam-pascal/comment-page-1/#comment-204</link>
		<dc:creator>Juan Castro</dc:creator>
		<pubDate>Mon, 21 Sep 2009 23:15:04 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=95#comment-204</guid>
		<description>Independente da linguagem, não é melhor loopar pelas raízes quadradas em vez dos quadrados?

seq 10 99 &#124; gawk &#039;(int($1*$1/100) + $1*$1%100 == $1) {print $1*$1}&#039;</description>
		<content:encoded><![CDATA[<p>Independente da linguagem, não é melhor loopar pelas raízes quadradas em vez dos quadrados?</p>
<p>seq 10 99 | gawk &#8216;(int($1*$1/100) + $1*$1%100 == $1) {print $1*$1}&#8217;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Quando o FakeWeb deu um grande susto pt 2: o changelog por pedro Henrique</title>
		<link>http://pacman.blog.br/blog/dicas/quando-o-fakeweb-deu-um-grande-susto-pt-2-o-changelog/comment-page-1/#comment-202</link>
		<dc:creator>pedro Henrique</dc:creator>
		<pubDate>Sun, 13 Sep 2009 01:57:43 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/dicas/quando-o-fakeweb-deu-um-grande-susto-pt-2-o-changelog/#comment-202</guid>
		<description>esse blog é legal =D muito conteúdo ;D</description>
		<content:encoded><![CDATA[<p>esse blog é legal =D muito conteúdo ;D</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre 10 coisas que todo o programador deveria saber por Tomás T. Pinto</title>
		<link>http://pacman.blog.br/blog/dicas/10-coisas-que-todo-o-programador-deveria-saber/comment-page-1/#comment-201</link>
		<dc:creator>Tomás T. Pinto</dc:creator>
		<pubDate>Wed, 26 Aug 2009 00:56:28 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=80#comment-201</guid>
		<description>%s/programador/codenerd/g</description>
		<content:encoded><![CDATA[<p>%s/programador/codenerd/g</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Não entendo o motivo pelo qual ainda ensinam pascal por André Taiar</title>
		<link>http://pacman.blog.br/blog/dicas/nao-entendo-o-motivo-pelo-qual-ainda-ensinam-pascal/comment-page-1/#comment-198</link>
		<dc:creator>André Taiar</dc:creator>
		<pubDate>Thu, 23 Jul 2009 18:17:51 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=95#comment-198</guid>
		<description>Eles usam pascal por quê é didático, informa os erros de uma forma elegante e sem causar traumas. Quase te guia pelo código.

Não é recomendável começar o ensino por C ou Java ou, muito menos, Ruby. Elas não são didáticas, apesar de serem simples. Uma coisa não é sinônimo da outra.

Mas em uma segunda instância, é essencial adotar logo um C.
Uma evolução meio que Pascal - C - Depois um C++ ou Java mesmo...

Infelizmente, eu comecei a aprender por VB :s.. Tosco neh? Depois veio Java, C, Ruby, C++.... Caminho bem controverso, eu acho...</description>
		<content:encoded><![CDATA[<p>Eles usam pascal por quê é didático, informa os erros de uma forma elegante e sem causar traumas. Quase te guia pelo código.</p>
<p>Não é recomendável começar o ensino por C ou Java ou, muito menos, Ruby. Elas não são didáticas, apesar de serem simples. Uma coisa não é sinônimo da outra.</p>
<p>Mas em uma segunda instância, é essencial adotar logo um C.<br />
Uma evolução meio que Pascal &#8211; C &#8211; Depois um C++ ou Java mesmo&#8230;</p>
<p>Infelizmente, eu comecei a aprender por VB :s.. Tosco neh? Depois veio Java, C, Ruby, C++&#8230;. Caminho bem controverso, eu acho&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre 10 coisas que todo o programador deveria saber por Juan Castro</title>
		<link>http://pacman.blog.br/blog/dicas/10-coisas-que-todo-o-programador-deveria-saber/comment-page-1/#comment-197</link>
		<dc:creator>Juan Castro</dc:creator>
		<pubDate>Tue, 21 Jul 2009 19:18:58 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=80#comment-197</guid>
		<description>9 de 10 tá bom, eu acho. (Plataformas de publicação? Content management systems? Ahn?)

Aí cara, vi teu link no blogroll do evento MSX no sábado agora. Vai lá?</description>
		<content:encoded><![CDATA[<p>9 de 10 tá bom, eu acho. (Plataformas de publicação? Content management systems? Ahn?)</p>
<p>Aí cara, vi teu link no blogroll do evento MSX no sábado agora. Vai lá?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentário sobre Não entendo o motivo pelo qual ainda ensinam pascal por admin</title>
		<link>http://pacman.blog.br/blog/dicas/nao-entendo-o-motivo-pelo-qual-ainda-ensinam-pascal/comment-page-1/#comment-196</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 19 Jul 2009 03:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://pacman.blog.br/blog/?p=95#comment-196</guid>
		<description>programadores de verdade não ficam ofendidos a menos que tenham sido compilados com as opções coerentes.</description>
		<content:encoded><![CDATA[<p>programadores de verdade não ficam ofendidos a menos que tenham sido compilados com as opções coerentes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
