<?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>Developer Studies</title>
	<atom:link href="http://fabioyamate.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://fabioyamate.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 22 Nov 2011 03:51:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Upgrading NPM 0.2.x to 1.0.x</title>
		<link>http://fabioyamate.com/2011/05/02/upgrading-npm-0-2-x-to-1-0-x/</link>
		<comments>http://fabioyamate.com/2011/05/02/upgrading-npm-0-2-x-to-1-0-x/#comments</comments>
		<pubDate>Mon, 02 May 2011 18:06:39 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[nodejs]]></category>
		<category><![CDATA[npm]]></category>

		<guid isPermaLink="false">http://fabioyamate.com/?p=248</guid>
		<description><![CDATA[I&#8217;m gonna do quick post about migrating NPM (Node Package Manager) from 0.2 to 1.0.x. Basically, you can check this post for more information. So, since I started to play with Node.js you basically starts installing NPM, which allows you &#8230; <a href="http://fabioyamate.com/2011/05/02/upgrading-npm-0-2-x-to-1-0-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m gonna do quick post about migrating <a href="http://npmjs.org/">NPM</a> (Node Package Manager) from 0.2 to 1.0.x. Basically, you can check this <a href="http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/">post</a> for more information.</p>
<p>So, since I started to play with Node.js you basically starts installing NPM, which allows you to install libraries and manage them. So, with some libraries that I test, I usually do:</p>
<p><code>$ npm update</code></p>
<p>This command updates your installed libraries, but it doesn&#8217;t upgrades NPM. To upgrade your installation you require to run this complex command:</p>
<p><code>$ curl http://npmjs.org/install.sh | sh</code></p>
<p>It will notice you that your current libraries installed will be lost, and is advised you to backup them, so you can reinstall it. And them, you are done. But, why NPM removes my current installed libraries?</p>
<p>NPM 1.0.x was mainly focused on path/managing your Node.js libraries in a better way, so it requires that your libs be installed with these path changes, which can be local or global paths. In resume, you can now install through:</p>
<p><code>$ npm install &lt;lib&gt;<br />
$ npm install &lt;lib&gt; -g</code></p>
<p>The latter installs it globally, and usually installed at <code>/usr/local/lib/node_modules</code>. For development and deployment stuff, you would choose the first, since you will use it as libraries, and require it at your projects. You will need it globally when it has a CLI (Command Line Interpreter). When doing so, you get access to it, for example:</p>
<p><code>$ npm install ender -g<br />
$ which ender<br />
/usr/local/bin/ender</code></p>
<p>But, if I wanna both locally and global, do I have to install it twice? The quick answers is, yes. But NPM can do it more intelligent, so you don&#8217;t need to upgrade/manage it twice. NPM comes with <code>link</code> command that allows you to symlink global installs to your local installs. So, every time you upgrade it globally you get your local also. So, you should be aware of this, since you don&#8217;t get a <code>lib@version</code> install, you will get <code>lib</code> install, so it might broke your code, so use it with this in mind.</p>
<p><code>$ node install express -g<br />
$ npm link express<br />
$ ls -l ~/node_modules/<br />
$ (...) express -> /usr/local/lib/node_modules/express</code></p>
<p>Doing this steps you can get back to work when upgrading your NPM installation. For more information read Node.js <a href="http://blog.nodejs.org/">blog</a>, which has some posts related to NPM.</p>
<p>This is my first post published in english, so there might be some english errors.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2011/05/02/upgrading-npm-0-2-x-to-1-0-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Homebrew the new package system!</title>
		<link>http://fabioyamate.com/2010/01/01/homebrew-the-new-package-system/</link>
		<comments>http://fabioyamate.com/2010/01/01/homebrew-the-new-package-system/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 21:16:47 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[installation]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=189</guid>
		<description><![CDATA[Como mencionei em meus posts anteriores, tenho deixado de usar o MacPorts como package manager. Além de eu já ter passado por alguns problemas com ele ao fazer build existem outros problemas relatados no github do projeto, vale a pena &#8230; <a href="http://fabioyamate.com/2010/01/01/homebrew-the-new-package-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Como mencionei em meus posts anteriores, tenho deixado de usar o MacPorts como package manager. Além de eu já ter passado por alguns problemas com ele ao fazer build existem outros problemas relatados no github do projeto, vale a pena dar uma conferida. Assim, estou deixando de usar o MacPorts (apesar de não desinstalado ainda, já não tenho mais nada instalado via port).</p>
<p>Bom, vou passar os passos que usei para ter o Homebrew funcionando no Mac OSX. Não sou dos mais experiêntes com *nix, ainda me perco em onde colocar cada coisa e desconheço boas práticas sobre isso. Infelizmente, não tive muita sorte em encontrar bons textos sobre isso, por isso fiz do meu jeito, baseando na instalação 3 (Gogolinux).</p>
<p>Para obter a versão do Homebrew eu apenas criei um diretório Cellar no /usr/local</p>
<p>sudo mkdir /usr/local/Cellar</p>
<p>Agora baixei a versão do github para este diretório</p>
<p>cd /usr/local/Cellar<br />
sudo git clone git://github.com/mxcl/homebrew.git</p>
<p>Assim, teremos o projeto em /usr/local/Cellar/homebrew. Se quiser fazer o primeiro teste, basta digitar</p>
<p>/usr/local/Cellar $ homebrew/bin/brew &#8211;prefix<br />
&gt; /usr/local/Cellar/homebrew</p>
<p>Ok, vemos que o brew já está ok, mas tive que digitar homebrew/bin/brew, se digitar o comando brew, tive como resposta</p>
<p>-bash: brew: command not found</p>
<p>Isso por que o comando brew não se encontra no /usr/local/bin</p>
<p>Ok, basta fazermos um link simbólico:</p>
<p>cd /usr/local/bin<br />
/usr/local/bin $ sudo ln -s /usr/local/Cellar/homebrew/bin/brew brew</p>
<p>Assim, teremos um link simbólico para o brew. Note que é como o atalho do Windows, se eu mudar o brew ele irá refletir no brew do bin. Digo isto por que no *nix podemos criar hard links que aponta para o arquivo físico, o que é diferente de link.</p>
<p>Agora podemos testar digitando apensa:</p>
<p>$ brew &#8211;prefix<br />
&gt; /usr/local</p>
<p>Bom, eu no momento me sinto confortável em usar sudo para instalar, mas no site do projeto é sugerido em alterar os donos do diretório /usr/local de root para o seu usuário, eliminando completamente a necessidade de digitar sudo. Talvez faça isto no futuro.</p>
<p>Bom, teste simples</p>
<p>$ sudo brew install wget</p>
<p>Warning: It appears you have Macports or Fink installed<br />
Although, unlikely, this can break builds or cause obscure runtime issues.<br />
If you experience problems try uninstalling these tools.<br />
==&gt; Downloading http://ftp.gnu.org/gnu/wget/wget-1.12.tar.bz2<br />
######################################################################## 100.0%<br />
==&gt; ./configure &#8211;disable-debug &#8211;prefix=/usr/local/Cellar/wget/1.12<br />
==&gt; make install<br />
/usr/local/Cellar/wget/1.12: 9 files, 784K, built in 31 seconds</p>
<p>$ which wget<br />
&gt; /usr/local/bin/wget</p>
<p>Agora para vermos onde ele está instalado:</p>
<p>$ brew list wget</p>
<p>/usr/local/Cellar/wget/1.12/bin/wget<br />
/usr/local/Cellar/wget/1.12/etc/wgetrc<br />
/usr/local/Cellar/wget/1.12/share/info/ (2 files)<br />
/usr/local/Cellar/wget/1.12/share/man/man1/wget.1</p>
<p>Podemos ver que o wget foi instalado no /usr/local/Cellar como queríamos. Quando precisarmos remover qualquer coisa instalada, basta removermos tudo que há no Cellar e os links simbólicos gerados automaticamente pelo brew (i.e. /usr/local/bin/wget)</p>
<p>Qualquer sugestão ou correção me envie nos comentários.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2010/01/01/homebrew-the-new-package-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby gems no Snow Leopard</title>
		<link>http://fabioyamate.com/2009/12/30/ruby-gems-no-snow-leopard/</link>
		<comments>http://fabioyamate.com/2009/12/30/ruby-gems-no-snow-leopard/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 18:01:35 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=187</guid>
		<description><![CDATA[Infelizmente, depois de fazer o upgrade para o Snow Leopard algumas gems pararam de funcionar, como por exemplo o Rails não consegui subir o servidor. Pesquisando pela internet, não consegui achar informações relevantes para o meu problema. Minha solução foi &#8230; <a href="http://fabioyamate.com/2009/12/30/ruby-gems-no-snow-leopard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Infelizmente, depois de fazer o upgrade para o Snow Leopard algumas gems pararam de funcionar, como por exemplo o Rails não consegui subir o servidor. Pesquisando pela internet, não consegui achar informações relevantes para o meu problema.</p>
<p>Minha solução foi remover todas as gems que instalei desde que comecei com o Leopard, mas antes faça um backup da sua lista</p>
<p>gem list &gt; gems_list_backup.txt</p>
<p>Assim, você sabera todas as gems que tinha e versões.</p>
<p>Agora é so fazer:</p>
<p>sudo gem clean</p>
<p>Isso irá remover todas as gems que você instalou. Se você der um gem list, verá que existem algumas gems ainda instaladas. Estas gems são as versões que vem pré-instaladas com o Leopard. Você pode remover, mas eu optei por deixá-las. As gems pré-instaladas podem ser vistas usando o comando:</p>
<p>gem list -d</p>
<p>Agora vá instalando uma a uma as gems e pronto, e tudo funcionará normalmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/12/30/ruby-gems-no-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snow Leopard para Desenvolvedores (Ruby)</title>
		<link>http://fabioyamate.com/2009/12/30/snow-leopard-para-desenvolvedores-ruby/</link>
		<comments>http://fabioyamate.com/2009/12/30/snow-leopard-para-desenvolvedores-ruby/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 17:51:52 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=185</guid>
		<description><![CDATA[A primeira coisa para qualquer desenvolvedor fazer é instalar a nova versão do Xcode do Mac que vem junto ao DVD como Extras. Diferente de distros Linux como Ubuntu em que você usa o apt-get como package manager para instalar &#8230; <a href="http://fabioyamate.com/2009/12/30/snow-leopard-para-desenvolvedores-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A primeira coisa para qualquer desenvolvedor fazer é instalar a nova versão do Xcode do Mac que vem junto ao DVD como Extras. Diferente de distros Linux como Ubuntu em que você usa o apt-get como package manager para instalar todas as libraries. Só que no Xcode ele instala várias libraries (atualizações) no Mac de uma vez. (Faça os Software Updates, sempre há)</p>
<p>Quando comecei a usar o Mac OSX posso dizer que minha experiência com ambientes *nix era quase zero. Instalar libraries? src path? e etc é algo que o Windows nos protege. Esta ignorância acaba sendo uma porrada grande nos primeiros dias de uso de ambientes linux. O importante é que, para desenvolvedores o Terminal é seu amigo então aprenda! Posso dizer que não vivo mais sem ele.</p>
<p>O gerenciador de pacotes mais comum é o Mac Ports, a primeira coisa que você tem que fazer é atualizá-lo. Só que, eu tive alguns problemas com ele para atualizar algumas gems. Primeiro, algumas libs tem de ser recompiladas para a nova arquitetura, que antes era apenas x86 e passaram a ser x86_64.</p>
<p>Posso dizer que os melhores passos que fiz foi o deste wiki do ports para reinstalar as dependências. Acontece que eu sugiro que você remova completamente todas e esqueça do Mac Ports. Lendo em alguns posts da internet, é comum ver os problemas que o Mac Ports tem, como duplicação de bibliotecas entre outros. Quando tinha o Mac Ports ele não conseguia recompilar algumas gems do ruby, como curb, após remover todas, ele passou a usar o do Mac, que vem com o Xcode, e foi uma beleza.</p>
<p>Acho que depois que passei a usar apenas as libs do Xcode não tive problemas algunas para instalar native build gems como nokogiri e entre outros.</p>
<p>Uma outra opção que tem ganhado espaço é o Homebrew que é uma ferramenta para gerar scripts de instalação de libraries, ainda não tive tempo de explorar ele, mas muitos desenvolvedores tem começado a usá-lo por resolver alguns problemas do Mac Ports.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/12/30/snow-leopard-para-desenvolvedores-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving to Snow Leopard</title>
		<link>http://fabioyamate.com/2009/12/30/moving-to-snow-leopard/</link>
		<comments>http://fabioyamate.com/2009/12/30/moving-to-snow-leopard/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 17:28:34 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[snowleopard]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=182</guid>
		<description><![CDATA[Após 1 ano de experiência com Mac OSX Leopard estou migrando para o Snow Leopard. Como um usuário de anos de uso do Windows, meu velho costume é o de sempre fazer um fresh/clean install do sistema operacional. Normalmente, no &#8230; <a href="http://fabioyamate.com/2009/12/30/moving-to-snow-leopard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Após 1 ano de experiência com Mac OSX Leopard estou migrando para o Snow Leopard.</p>
<p>Como um usuário de anos de uso do Windows, meu velho costume é o de sempre fazer um fresh/clean install do sistema operacional. Normalmente, no Windows o motivo de fazer um clean install é para conseguir de volta o desempenho do sistema operacional depois de inúmeros programas, de certo modo, inúteis, e como muitos sabem o uninstall não faz um uninstall completo. Por este motivo formatação para mim tem sido sempre a melhor opção.</p>
<p>Já no Mac não tive muito este problema de queda no desempenho. Claro que com o tempo você começa a instalar inúmeros aplicativos existem vários serviços para serem subidos no sistema operacional e isso reduz um pouco o desempenho do boot. Então resolvi fazer o upgrade do Leopard para o Snow Leopard e ver no que dá.</p>
<p>Tudo que fiz foi dar uma pesquisada na internet sobre quais os melhores procedimentos para se realizar o upgrade. Como a maioria dos sites, as recomendações foram:</p>
<ul>
<li>Backup dos dados com Time Machine + DVD: neste caso eu só optei pelo Time Machine para um HD externo</li>
<li>Limpeza: uma das partes mais demoradas (&#8220;chatas&#8221;) do trabalho de instalação do sistema operacional. É uma ótima oportunidade para remover todo aquele &#8220;lixo&#8221; que você nem sabia que existia, principalmente do Downloads, cheguei a remover +5Gb só neste diretório</li>
<li>Remoção de aplicativos: Aproveitei para remover algums Apps trials que instalei, utilizando junto o AppSweeper do Hazel que notifica arquivos não removidos da remoção do App.</li>
<li>Limpeza do Sistema Operacional: recomendo o Onyx principalmente por que ele faz uma verificação do &#8220;estado&#8221; do seu HD, e vendo se não existe nenhum problema que poderia prejudicar o upgrade. Outra opção é o Cocktail que é pago.</li>
</ul>
<p>Feito estas etapas, foi somente colocar o DVD de instalação do Snow Leopard e esperar por volta de 1h e BOOM, Snow Leopard instalado.</p>
<p>Infelizmente, existem alguns efeitos colaterais do upgrade, mas que para mim não foram muito significativos. Um deles foi apenas que uma conta de usuário (para desenvolvimento) sumiu. Como esta conta não tinha nada, para mim foi indiferente, mas de uma buscada na internet se para você isto for importante.</p>
<p>Bom, depois da instalação não tive muitos problemas, os principais aplicativos continuaram funcionando. Todos os apps com suporte a 64-bits já começaram a aparecer no Activity Monitor. Nós próximos posts estarei reportando alguns problemas e soluções que apliquei após a atualização.</p>
<p>Só posso dizer que até o momento não sinto problema em não ter feito um clean install, mas posso dizer que sinto falta deste trabalho após longos anos de experiência do Windows&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/12/30/moving-to-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Voltando</title>
		<link>http://fabioyamate.com/2009/12/30/voltando/</link>
		<comments>http://fabioyamate.com/2009/12/30/voltando/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 17:08:14 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/2009/12/30/voltando/</guid>
		<description><![CDATA[Finalmente, depois de um longo tempo de inatividade, estarei podendo me dedicar melhor ao blog (espero). Agora sou um Engenheiro da Computação formado, então 2010 estamos ai!]]></description>
			<content:encoded><![CDATA[<p>Finalmente, depois de um longo tempo de inatividade, estarei podendo me dedicar melhor ao blog (espero). Agora sou um Engenheiro da Computação formado, então 2010 estamos ai!</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/12/30/voltando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuração NAT em VMs no VMWare Fusion e Workstation</title>
		<link>http://fabioyamate.com/2009/05/24/configuracao-nat-em-vms-no-vmware-fusion-e-workstation/</link>
		<comments>http://fabioyamate.com/2009/05/24/configuracao-nat-em-vms-no-vmware-fusion-e-workstation/#comments</comments>
		<pubDate>Mon, 25 May 2009 02:23:20 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[network]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtualmachine]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=175</guid>
		<description><![CDATA[Recentemente tenho trabalhado com muitas aplicações e não dá para ter tudo instalado na mesma máquina por que vários serviços podem conflitar entre si, seja por versões ou duplicidade de instâncias, por exemplo versões de banco de dados de diferentes &#8230; <a href="http://fabioyamate.com/2009/05/24/configuracao-nat-em-vms-no-vmware-fusion-e-workstation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recentemente tenho trabalhado com muitas aplicações e não dá para ter tudo instalado na mesma máquina por que vários serviços podem conflitar entre si, seja por versões ou duplicidade de instâncias, por exemplo versões de banco de dados de diferentes verões na mesma máquina.</p>
<p>O que fazer? Configurar VMs (Virtual Machines)!</p>
<p>Se você tem um PC relativamente novo já deve ter experimentado utilizar máquinas virtuais para emular algum sistema, por exemplo linux ou versões de sistemas betas e etc. Digamos que você queira ter um servidor *NIX rodando na sua máquina com um servidor web para desenvolvimento, seja Java/PHP/Python o que for, uma vez que em grande parte esses sistemas são colocados em produção nesses tipos de sistemas e não no Windows.</p>
<p>Estou usando o VMWare 2.0 para isso, agora estou de Mac e portanto estou usando a versão Fusion que é a única disponível dos produtos da VMWare. No caso do mundo Windows, temos Player, Workstation e Server. Usei também a versão Workstation 6.5.x.</p>
<p><strong>Um pouco de teoria&#8230;</strong></p>
<p>Acontece que a configuração padrão de rede é <a title="NAT" href="http://en.wikipedia.org/wiki/Network_address_translation" target="_blank">NAT</a> que é um tradutor de endereços de rede. Veja a imagem abaixo para ilustrar a configuração NAT:</p>
<div class="wp-caption aligncenter" style="width: 486px"><img title="NAT Configuração" src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/102-2527-9-1651/nat1.PNG" alt="VM NAT" width="476" height="173" /><p class="wp-caption-text">Configuração Virtual Machine em NAT</p></div>
<p>Como pode ver na figura acima, você tem uma máquina virtual rodando no seu computador e utiliza a interface de rede dele para acessar sua rede local. Veja que o recurso de rede é compartilhado, de modo que sua VM não fica exposta na rede externa, onde o seu computador atua como um &#8220;firewall&#8221;.</p>
<p>Digamos que eu queira expor meu servidor web para o resto da rede, neste caso na VM estou com a porta 80 aberta, porém o IP virtual que é configurado na VM não é visto pela rede. Entenda isso como o analogo a sua configuração de rede que provavelmente deve ter um roteador que interfaceia sua rede local com o seu provedor de acesso a internet. Ou seja, o pessoal de fora não vê seu PC e sim o roteador. Se desejarmos expor precisamos &#8220;traduzir&#8221; as requisições para que sejam enviadas ao destino correto, em nosso caso seu PC-Roteador ou VM-Computador.</p>
<p>Para entendermos melhor, precisamos entender como uma comunicação é feita, não vou entrar em muitos detalhes.</p>
<p>Para que você se conecte a uma máquina precisamos do endereço IP e a porta de comunicação. Digamos que vá acessar uma página na Web pelo seu navegador predileto. Você digita www.fabioyamate.com este endereço será traduzido para um endereço IP por servidores DNS e a requisição será enviada para a porta 80 (default), que é padronizada para servidores Web. Neste caso não explicitamos a porta, pois o navegador já estabelece isso por padrão. Se precisássemos de outra porta, digamos 8080, precisaríamos requisitar www.fabioyamate.com:8080.</p>
<p>Ok, agora que sabemos disso, como expomos a porta 80 da minha máquina virtual? Se você não entendeu o problema, veja que a porta 80 da sua máquina não é a mesma da máquina virtual. Precisamos ensinar que as requições que cheguem na porta 80 do meu computador vão para a porta 80 da minha máquina virtual, essa etapa é que chamamos de tradução.</p>
<p>Assim, queremos relacionar vm:80 &lt;-&gt; comp:80, poderíamos associar a portas diferentes, digamos: vm:80 &lt;-&gt; comp:12345. Então faríamos requisições para a porta 12345 para acessarmos o serviço rodando na máquina virtual.</p>
<h2>Colocando em Prática</h2>
<p>Agora que entendemos o conceito do funcionamento, precisamos saber como configurar isso na VM. No VMWare, novas interfaces de redes são adicionadas, que neste caso são virtuais. No VMWare Fusion, a tabela de tradução de endereços encontra-se no diretório:</p>
<p>/Library/Application Support/VMWare Fusion/vmnet8/nat.conf</p>
<p>Uma boa prática é sempre mantermos uma cópia da verão em funcionamento para caso realizemos uma besteira podemos restaurar.</p>
<p>sudo cp nat.conf nat.conf.backup<br />
sudo vi nat.conf</p>
<p>Agora basta adicionarmos a tradução da seguinte forma:</p>
<p>porta_local_maquina = endereco_vm:porta_vm</p>
<p>Exemplo:</p>
<p># Servidor Web<br />
8080 = 172.16.250.130:80</p>
<p>Basta salvar o arquivo usando :wq! (pois o arquivo é readonly) no vi, se sentir dificuldade de uma navegada na internet, ou use outro editor a sua escolha.</p>
<p>Agora precisamos reconfigurar a interface virtual para que as alterações tenham efeito.</p>
<p>No diretório /Library/Application Support/VMWare Fusion temos um script boot.sh, assim digite:</p>
<p>sudo ./boot.sh &#8211;restart</p>
<p>Isso irá reconfigurar. Pode ser que necessite desligar a máquina virtual, mas normalmente não é necessário.</p>
<p>Com isso você já pode acessar de fora a máquina virtual configurada.</p>
<p>No Windows o processo é igual, mas é feito por interface gráfica, se não me engando Network Editor ou algo do gênero.</p>
<p>Note que se você usa algum firewall você deve liberar as portas da máquina virtual para que o serviço seja realmente exposto.</p>
<p>Um utilitário muito bom é o <a href="http://nmap.org/" target="_blank">nmap</a> que tem tanto para todas as plataformas. Basta usar o comando:</p>
<p>nmap -p &lt;PORTA&gt; &lt;ENDERECO_IP&gt;</p>
<p>ou</p>
<p>nmap -p &lt;PORTA_INICIAL&gt;-&lt;PORTA_FINAL&gt; &lt;ENDERECO_IP&gt;</p>
<p>Caso ping esteja restrito no firewall, use -PN.</p>
<p>Espero que este texto seja de ajuda.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/05/24/configuracao-nat-em-vms-no-vmware-fusion-e-workstation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java Development</title>
		<link>http://fabioyamate.com/2009/04/25/java-development/</link>
		<comments>http://fabioyamate.com/2009/04/25/java-development/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 20:26:48 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[aviso]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=173</guid>
		<description><![CDATA[Nos meus últimos 2 anos tenho dedicado a maior parte da minha evolução técnica no mundo .NET. Primeiramente, comecei a trabalhar com essa tecnologia, ao invés de java e, isto, de certa forma me influênciou, mas com o tempo acabei &#8230; <a href="http://fabioyamate.com/2009/04/25/java-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nos meus últimos 2 anos tenho dedicado a maior parte da minha evolução técnica no mundo .NET. Primeiramente, comecei a trabalhar com essa tecnologia, ao invés de java e, isto, de certa forma me influênciou, mas com o tempo acabei me apaixonando pela linguagem C#. A realidade é que prefiro muito mais C# do que Java, porém não se pode ignorar a comunidade Java que existem muito mais soluções em nível Enterprise.</p>
<p>A plataforma .NET é muito fechada as decisões da Microsoft. O ASP.NET é uma das plataformas das quais não me sinto vontade de trabalhar, ela fica extremamente difícil de aplicar padrões. De uns dois ou três anos para cá é que isso tem modificado com o surgimento de frameworks opensource, como <a href="http://www.castleproject.org/" target="_blank">Castle Project</a>, <a href="http://www.hibernate.org/" target="_blank">NHibernate</a>, IoC e muitos outros. Contudo, todos são originários de frentes vindas do Java.</p>
<p>A linguagem Java, em si, nem é o aspecto mais importante para mim, e sim, as tecnologias que envolvem para se desenvolver uma aplicação.</p>
<p>Por este motivo, estou pensando em começar a trabalhar com Java, novamente, mas como uma visão de soluções corporativas.</p>
<p>Vou começar a estudar alguns frameworks web, principalmente pelo aspecto de arquitetura, que é uma área a qual tenho um grande interesse em me aprofundar.</p>
<p>Não vou deixar o mundo .NET, mas tentarei escrever algumas coisas sobre Java contando minhas experiências.</p>
<p>Não me esqueci dos posts sobre <a href="http://www.asp.net/mvc" target="_blank">ASP.NET MVC</a> não.</p>
<p>Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/04/25/java-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syntax Highlighter, Colorindo Seu Código</title>
		<link>http://fabioyamate.com/2009/04/25/syntax-highlighter-colorindo-seu-codigo/</link>
		<comments>http://fabioyamate.com/2009/04/25/syntax-highlighter-colorindo-seu-codigo/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 13:18:46 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[dica]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=160</guid>
		<description><![CDATA[Como migrei para o mundo Mac, sinto falta do Windows Live Writer que tinha um excelente plugin para colorir o código. Testei alguns dos editores de blog para Mac, mas nenhum deles incorpora esse tipo de funcionalidade. Até que encontrei &#8230; <a href="http://fabioyamate.com/2009/04/25/syntax-highlighter-colorindo-seu-codigo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Como migrei para o mundo Mac, sinto falta do Windows Live Writer que tinha um excelente plugin para colorir o código. Testei alguns dos editores de blog para Mac, mas nenhum deles incorpora esse tipo de funcionalidade. Até que encontrei o <a href="http://code.google.com/p/syntaxhighlighter" target="_blank">Syntax Highlighter</a> que aplica essa funcionalidade por meio de javascript e CSS.</p>
<p>Abaixo segue o primeiro código usando ele.</p>
<pre name="code" class="java">public class HelloWorld
{
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}</pre>
<p>O que falta ainda é automatizar a inclusão de tags usada pelo syntax highlighter que pede o código dentro da tag pre. Acho que isso é possível de fazer com jQuery.</p>
<p><strong>Update:</strong> Existe um plugin para o wordpress <a href="http://wordpress.org/extend/plugins/syntaxhighlighter/" target="_blank">aqui</a>. Eu testei ele, mas não vi benefícios por que ele não agrega um controle no wordpress, o que seria o ideal. Ainda tenho que adicionar as tags na mão, ou seja, ao invés de fazer isso:</p>
<pre name="code" class="html">&lt;pre name="code" class="java"&gt;...&lt;/pre&gt;</pre>
<p>faço isso</p>
<pre name="code" class="html">[java]...[/java]</pre>
<p>Por isso, prefiro ficar com o modo inicial.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/04/25/syntax-highlighter-colorindo-seu-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batch Download Legendas.TV (Greasemonkey)</title>
		<link>http://fabioyamate.com/2009/04/24/batch-download-legendastv-greasemonkey/</link>
		<comments>http://fabioyamate.com/2009/04/24/batch-download-legendastv-greasemonkey/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 02:09:48 +0000</pubDate>
		<dc:creator>Fabio Yamate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.fabioyamate.com/blog/?p=156</guid>
		<description><![CDATA[Semana passada precisava baixar algumas legendas antigas do site Legendas.TV, e nunca achei prático baixar legendas por que tem popups. Com isso, acabei fazendo meu primeiro script para o greasemonkey+jquery. Foi bem simples. Quem quiser baixar é só ir na &#8230; <a href="http://fabioyamate.com/2009/04/24/batch-download-legendastv-greasemonkey/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Semana passada precisava baixar algumas legendas antigas do site Legendas.TV, e nunca achei prático baixar legendas por que tem popups. Com isso, acabei fazendo meu primeiro script para o greasemonkey+jquery. Foi bem simples. Quem quiser baixar é só ir na <a title="Batch Download Legendas.TV" href="http://projects.fabioyamate.com/">páginas de projetos</a> ou clicando <a href="http://projects.fabioyamate.com/greasemonkey">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabioyamate.com/2009/04/24/batch-download-legendastv-greasemonkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

