<?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>coding &#187; mac</title>
	<atom:link href="http://www.coding.com.br/category/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coding.com.br</link>
	<description>have you coded today?</description>
	<lastBuildDate>Thu, 18 Aug 2011 17:29:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Building GCC [4.6] on MacOSX</title>
		<link>http://www.coding.com.br/mac/building-gcc-4-6-on-macosx/</link>
		<comments>http://www.coding.com.br/mac/building-gcc-4-6-on-macosx/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 18:38:33 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[macosx]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=880</guid>
		<description><![CDATA[The objective here is describe a didactic way to build GNU GCC on MacOSX.  In order to compile GCC you need three libraries: GMP, MPFR and MPC. To organize I usually create folders for each purpose. In this case, three, respectively: source, build and install. [It's not a rule].  My original enviroment is MacOSX 10.6.4 and gcc [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">The objective here is describe a didactic way to build GNU GCC on MacOSX.  In order to compile GCC you need three libraries: GMP, MPFR and MPC. To organize I usually create folders for each purpose. In this case, three, respectively: <em>source</em>, <em>build</em> and <em>install</em>. [It's not a rule].  My original enviroment is MacOSX 10.6.4 and gcc version 4.2.1 (Apple Inc. build 5659). All files will be on GCC folder, the description below shows:</p>
<p style="padding-left: 30px;">$ mkdir ~/Projects/GCC # <em>compiler + libs</em><br />
$ mkdir ~/Projects/GCC/libs # <em>gmp, mpfr and mp</em>c<br />
$ mkdir ~/Projects/GCC/libs/files <em># downloaded files</em><br />
$ mkdir ~/Projects/GCC/libs/install <em># store libs objects and include</em></p>
<p><strong>Step #1 &#8211; Download</strong></p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/libs/files<br />
$ wget ftp://ftp.gmplib.org/pub/gmp-5.0.1/gmp-5.0.1.tar.bz2<br />
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.0.0.tar.bz2<br />
$ wget http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz</p>
<p><strong>Step #2 &#8211; Unpack </strong></p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/libs/<br />
$ tar jxvf files/gmp-5.0.1.tar.bz2<br />
$ tar jxvf files/mpfr-3.0.0.tar.bz2<br />
$ tar zxvf files/mpc-0.8.2.tar.gz</p>
<p><strong>Step #3 &#8211; Build: GMP</strong></p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/libs/</p>
<p style="padding-left: 30px;">$ mkdir gmp-build<br />
$ cd gmp-build<br />
$ ../gmp-5.0.1/configure &#8211;prefix=$(cd ../install &amp;&amp; pwd)<br />
$ make install</p>
<p><em>Note 1: I&#8217;m using with ABI=64</em><br />
<em>Note 2 : Maybe you&#8217;ll get some unresolved symbols to GMP and MPFR on linking time, never mind. </em></p>
<p><em></em><strong>Step #4 &#8211; Build: MPFR</strong></p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/libs/</p>
<p style="padding-left: 30px;">$ mkdir mpfr-build<br />
$ cd mpfr-build<br />
$ ../mpfr-3.0.0/configure &#8211;prefix=$(cd ../install &amp;&amp; pwd) &#8211;with-gmp=~/Projects/GCC/libs/install<br />
$ make install</p>
<p><em>Note: Before prefix and with-xxx there are two hyphen (not one as showed). It&#8217;s an Wordpress issue, I don&#8217;t know how to avoid concatenation. </em></p>
<p><strong>Step #5 &#8211; Build: MPC</strong></p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/libs/</p>
<p style="padding-left: 30px;">$ mkdir mpc-build<br />
$ cd mpc-build<br />
$ ../mpc-0.8.2/configure &#8211;prefix=$(cd ../install &amp;&amp; pwd) &#8211;with-gmp=~/Projects/GCC/libs/install &#8211;with-mprf=~/Projects/GCC/libs/install<br />
$ make install</p>
<p style="padding-left: 30px;">Problems? If something goes wrong&#8230;</p>
<p style="padding-left: 30px;"><em>../../mpc-0.8.2/src/mpc.h:25:17: error: gmp.h: No such file or directory<br />
../../mpc-0.8.2/src/mpc.h:26:18: error: mpfr.h: No such file or directory</em></p>
<p style="padding-left: 30px;">I fixed by adding symbolic links:</p>
<p style="padding-left: 30px;">$ cd  ~/Projects/GCC/libs/mpc-0.8.2/src/<br />
$ ln -s ../../install/include/mpf2mpfr.h .<br />
$ ln -s ../../install/include/mpfr.h .<br />
$ ln -s ../../install/include/gmp.h .</p>
<p><strong>Step #6 &#8211; Download &amp; Build GCC (~4.6)</strong></p>
<p style="text-align: justify;">I used GCC from git (fda0037801fb258a2191aba59e1e9f0df019e3b6) and I don&#8217;t know if it will work on newer versions. You&#8217;ll have to try. Sorry. [Howto: <a href="http://gcc.gnu.org/wiki/GitMirror" target="_blank">GitMirror</a>]. Use <em>git checkout </em>to specify one commit.</p>
<p style="padding-left: 30px;">$ cd ~/Projects/GCC/</p>
<p style="padding-left: 30px;">$ git clone git://gcc.gnu.org/git/gcc.git</p>
<p style="padding-left: 30px;">$ mkdir build<br />
$ mkdir install</p>
<p style="padding-left: 30px;">$ cd build<br />
$ ../gcc/configure &#8211;prefix=$(cd ../install/ &amp;&amp; pwd) &#8211;with-gmp=/Users/maluta/Projects/GCC/libs/install &#8211;with-mpfr=/Users/maluta/Projects/GCC/libs/install &#8211;with-mpc=/Users/maluta/Projects/GCC/libs/install &#8211;disable-checking  &#8211;enable-werror &#8211;enable-languages=c</p>
<p style="padding-left: 30px;">$ make<br />
$ make install</p>
<p><strong>Step #7 &#8211; Test</strong></p>
<p>The binary files will be placed in ~/Projects/GCC/install/bin</p>
<p style="padding-left: 30px;">$  ~/Projects/GCC/install/bin<br />
$  ./gcc -v</p>
<p style="padding-left: 30px;">Using built-in specs.<br />
COLLECT_GCC=./gcc<br />
COLLECT_LTO_WRAPPER=/Users/maluta/Projects/GCC/install/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/lto-wrapper<br />
Target: x86_64-apple-darwin10.4.0<br />
Configured with: ../gcc/configure &#8211;prefix=/Users/maluta/Projects/GCC/install &#8211;with-gmp=/Users/maluta/Projects/GCC/libs/install &#8211;with-mpfr=/Users/maluta/Projects/GCC/libs/install &#8211;with-mpc=/Users/maluta/Projects/GCC/libs/install &#8211;disable-checking &#8211;enable-werror &#8211;enable-languages=c<br />
Thread model: posix<br />
gcc version 4.6.0 20100508 (experimental) (GCC)</p>
<p style="text-align: justify;">Although I focused on OSX build/installation the steps described are the same to any architecture. Build an compiler &#8211; especially a cross-compiler (no that case) &#8211; demands time and patience to understand many particularities.</p>
<p style="padding-left: 30px;">Enjoy <img src='http://www.coding.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/mac/building-gcc-4-6-on-macosx/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Primeiras impressões de uso do XCode com PyObjC</title>
		<link>http://www.coding.com.br/mac/primeiras-impressoes-de-uso-do-xcode-com-pyobjc/</link>
		<comments>http://www.coding.com.br/mac/primeiras-impressoes-de-uso-do-xcode-com-pyobjc/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 20:36:10 +0000</pubDate>
		<dc:creator>Tiago Maluta</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[pyobjc]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=810</guid>
		<description><![CDATA[Estou utilizando o Mac OS X a pouco tempo com a intenção de aprender um pouco da programação de interface gráficas. Uma opção é utilizar o Qt que é multi-plataforma, mas resolvi fazer um teste com o que a Apple tem a oferecer. Minha escolha inicial para pegar a &#8220;idéia&#8221; foi partir de alguma coisa [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Estou utilizando o Mac OS X a pouco tempo com a intenção de aprender um pouco da programação de interface gráficas. Uma opção é utilizar o Qt que é multi-plataforma, mas resolvi fazer um teste com o que a Apple tem a oferecer. Minha escolha inicial para pegar a &#8220;idéia&#8221; foi partir de alguma coisa que eu já sei, para isso escolhi o <em>binding</em> PyObjC para criar aplicativos utilizando Python.</p>
<p style="text-align: justify;">O primeiro problema que eu resolvi relativamente rápido foi a questão dos templates para criar um novo projeto em PyObjC. A versão que utilizo do XCode (3.2.1) não instala automaticamente, siga os passos <a href="http://ioanna.me/2009/09/installing-pyobjc-xcode-templates-in-snow-leopard/" target="_blank">aqui</a>.</p>
<p style="text-align: justify;">Resolvi fazer um programa bem simples para converter um número na base decimal para base hexadecimal. Isso em Python é feito com meia linha de código, mas o objetivo aqui é aprender como os componentes gráficos são acessados no código. Aprendi duas coisas importantes: <strong>outlets</strong> e <strong>actions</strong>.</p>
<p style="text-align: justify;">No Interface Builder assim como no Qt Designer não fazemos código e sim a tela. Em alguns tutoriais você pode encontrar referência a interface gráfica como um arquivo com a extensão .nib contudo as versões mais novas possuem a extensão .xib (procurando diferenças, li que o .xib gera um XML ao passo que o .nib não) <a href="http://www.coding.com.br/wp-content/uploads/2010/03/hex.png"><br />
<img class="aligncenter size-full wp-image-813" title="hex" src="http://www.coding.com.br/wp-content/uploads/2010/03/hex.png" alt="" width="163" height="232" /></a></p>
<p>O código que irá tratar dos componentes na janela é o arquivo AppDelegate (ex.: <em>NomeDoProjeto</em>AppDelegate.py). Na janela Library ( Tools -&gt; Library ) selecionamos a aba Classes e procuramos pela classe AppDelegate.<br />
<center><br />
<div id="attachment_814" class="wp-caption aligncenter" style="width: 258px"><a href="http://www.coding.com.br/wp-content/uploads/2010/03/outlet.png"><img class="size-medium wp-image-814" title="outlet" src="http://www.coding.com.br/wp-content/uploads/2010/03/outlet-248x300.png" alt="" width="248" height="300" /></a><p class="wp-caption-text">Acesso as duas edits</p></div><br />
</center><br />
Observe que esse processo de criação da interface gráfica no IB é independente da linguagem escolhida.<br />
<center><br />
<div id="attachment_815" class="wp-caption aligncenter" style="width: 259px"><a href="http://www.coding.com.br/wp-content/uploads/2010/03/action.png"><img class="size-medium wp-image-815" title="action" src="http://www.coding.com.br/wp-content/uploads/2010/03/action-249x300.png" alt="" width="249" height="300" /></a><p class="wp-caption-text">A action é equivalente ao SLOT() no Qt</p></div></center></p>
<p style="text-align: justify;">A parte das conexões são feitas segurando o control e clicando no cubo azul (na janela MainMenu.xib) da classe AppDelagete e arrastando até o componente que você deseja utilizar. Atenção na ordem:</p>
<ul style="text-align: justify;">
<li>Outlets das caixas de texto:  clique no cubo e arraste para o componente, para cada selecione o <em>outlet</em> apropriado.</li>
<li>Action do botão: clique no botão e arraste para o cubo, selecione a <em>action</em> apropriada</li>
</ul>
<p style="text-align: justify;">A parte que e gastei um tempo foi para acessar os <em>outlets</em>, mas depois de ver a opção <em>Write Update Class Files </em>o problema foi resolvido (se você já escreveu alguma no código na classe Int2HexAppDelegate.py opte pelo <em>Merge</em> senão pelo <em>Replace</em>)</p>
<p style="text-align: center;"><a href="http://www.coding.com.br/wp-content/uploads/2010/03/write.png"><img class="aligncenter size-medium wp-image-822" title="write" src="http://www.coding.com.br/wp-content/uploads/2010/03/write-179x300.png" alt="" width="179" height="300" /></a></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Foundation <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">from</span> AppKit <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">import</span> objc
<span style="color: #ff7700;font-weight:bold;">class</span> Int2HexAppDelegate <span style="color: black;">&#40;</span>NSObject<span style="color: black;">&#41;</span>:
    edit_hexa = objc.<span style="color: black;">IBOutlet</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    edit_int = objc.<span style="color: black;">IBOutlet</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    @objc.<span style="color: black;">IBAction</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> converte_<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, sender<span style="color: black;">&#41;</span>:
	    valor_int = <span style="color: #008000;">self</span>.<span style="color: black;">edit_int</span>.<span style="color: black;">intValue</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	    valor_hexa = <span style="color: #008000;">hex</span><span style="color: black;">&#40;</span>valor_int<span style="color: black;">&#41;</span>
	    <span style="color: #008000;">self</span>.<span style="color: black;">edit_hexa</span>.<span style="color: black;">setStringValue_</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>valor_hexa<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p style="text-align: justify;">Esse código é bem simples para mostrar o conceito e também porque eu por enquanto não saberia fazer nada muito mais complexo que isso :p</p>
<p style="text-align: justify;">
O acesso as caixas de texto é feita pelas variáveis (outlet) <em>edit_hexa</em> e <em>edit_int</em> e a ação converte_ (lembre-se que o converte: do ObjectiveC vira converte_ no Python)</p>
<p style="text-align: justify;">Fiz um screencast desse exemplo, disponível no <a href="http://www.youtube.com/watch?v=GZ1du3x07JI" target="_blank">Youtube</a> (como estava testando um <em>trial</em> do programa desculpem pela marca d&#8217;agua no video, selecione a qualidade de 720p, depois descobri que o QuickTime faz screencast mas já tinha feito <img src='http://www.coding.com.br/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  )</p>
<p>Espero que ajude quem pretende começar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/mac/primeiras-impressoes-de-uso-do-xcode-com-pyobjc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac OS X 10.6 &#8211; Snow Leopard</title>
		<link>http://www.coding.com.br/mac/mac-os-x-10-6-snow-leopard/</link>
		<comments>http://www.coding.com.br/mac/mac-os-x-10-6-snow-leopard/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 01:34:48 +0000</pubDate>
		<dc:creator>Celso Fernandes</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[SO]]></category>

		<guid isPermaLink="false">http://www.coding.com.br/?p=186</guid>
		<description><![CDATA[24 horas se passaram desde o lançamento do snow leopard, como vivo em um país de terceiro mundo que não teve pré-lançamento do mesmo e também o lançamento esta previsto para daqui 1 mês, não pude conter minha curiosidade, obtive a imagem através do diabo verde e realizei uma &#8220;fresh install&#8221; no meu macbook.
Realmente o [...]]]></description>
			<content:encoded><![CDATA[<p>24 horas se passaram desde o lançamento do snow leopard, como vivo em um país de terceiro mundo que não teve pré-lançamento do mesmo e também o lançamento esta previsto para daqui 1 mês, não pude conter minha curiosidade, obtive a imagem através do diabo verde e realizei uma &#8220;fresh install&#8221; no meu macbook.</p>
<p>Realmente o boot esta mais rápido em comparação ao leopard (ambos depois de instalado), mas ainda não tive tempo de verificar todas as novas funcionalidades, assim que descobrir algo interessante faço um post por aqui, segue o screenshot para aqueles que são um tanto quanto céticos heheh</p>
<p>abraços</p>
<p style="text-align: center;">
<div id="attachment_189" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-189" title="Mac OS X Snow Leopard Screenshot" src="http://www.coding.com.br/wp-content/uploads/2009/08/Screen-shot-2009-08-29-at-10.19.20-PM-300x187.png" alt="Mac OS X Snow Leopard Screenshot" width="300" height="187" /><p class="wp-caption-text">Mac OS X Snow Leopard Screenshot</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.coding.com.br/mac/mac-os-x-10-6-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
