<?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>Erko Bridee</title>
	<atom:link href="http://blog.erkobridee.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.erkobridee.com</link>
	<description>Uma visão particular de assuntos atuais…</description>
	<lastBuildDate>Thu, 16 May 2013 13:50:44 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Vagrant &#8211; Ambientes de desenvolvimento virtuais</title>
		<link>http://blog.erkobridee.com/2012/11/19/vagrant-ambientes-de-desenvolvimento-virtuais/</link>
		<comments>http://blog.erkobridee.com/2012/11/19/vagrant-ambientes-de-desenvolvimento-virtuais/#comments</comments>
		<pubDate>Mon, 19 Nov 2012 15:58:44 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Vagrant]]></category>
		<category><![CDATA[Virtual Box]]></category>
		<category><![CDATA[vm]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2737</guid>
		<description><![CDATA[Vagrant &#8211; Virtualized development made easy &#160; Proposta:&#160;diminuir o tempo de configura&#231;&#227;o do ambiente e maximizar a paridade dos ambientes de desenvolvimento e produ&#231;&#227;o, e tornar a desculpa&#160;&#34;funciona na minha m&#225;quina&#34;, uma rel&#237;quia do passado. &#160; Conheci atrav&#233;s do tuite do&#160;@flaviosilveira sobre o assunto: Vagrant: F&#225;cil e &#250;til &#124; Fl&#225;vio Silveira Segundo verifiquei, a proposta [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/11/vagrant-logo.png"><img alt="" class="aligncenter size-full wp-image-2738" height="362" src="http://blog.erkobridee.com/wp-content/uploads/2012/11/vagrant-logo.png" title="vagrant-logo" width="330" /></a></p>
<p style="text-align: center;"><a href="http://vagrantup.com/">Vagrant &#8211; Virtualized development made easy</a></p>
<p>&nbsp;</p>
<p><strong>Proposta:</strong>&nbsp;diminuir o tempo de configura&ccedil;&atilde;o do ambiente e maximizar a paridade dos ambientes de desenvolvimento e produ&ccedil;&atilde;o, e tornar a desculpa&nbsp;<em>&quot;funciona na minha m&aacute;quina&quot;</em>, uma rel&iacute;quia do passado.</p>
<p>&nbsp;</p>
<p>Conheci atrav&eacute;s do tuite do&nbsp;<a href="https://twitter.com/flaviosilveira">@flaviosilveira</a> sobre o assunto:</p>
<p style="margin-left: 40px;"><a href="http://flaviosilveira.com/2012/vagrant-facil-e-util/">Vagrant: F&aacute;cil e &uacute;til | Fl&aacute;vio Silveira</a></p>
<p>Segundo verifiquei, a proposta &eacute; bem interessante. Isolar e replicar um ambiente de desenvolvimento, o qual pode ser compartilhado entre os desenvolvedores, buscando representar o mais pr&oacute;ximo poss&iacute;vel o ambiente de produ&ccedil;&atilde;o, onde a aplica&ccedil;&atilde;o ser&aacute; executada.</p>
<p>&nbsp;</p>
<p>Outros links sobre o assunto:</p>
<p style="margin-left: 40px;"><a href="http://simplesideias.com.br/usando-o-vagrant-como-ambiente-de-desenvolvimento-no-windows">Usando o Vagrant como ambiente de desenvolvimento no Windows &#8211; Simples Ideias</a></p>
<p style="margin-left: 40px;"><a href="http://blog.concretesolutions.com.br/2012/10/criando-ambientes-virtualizados-com-vagrant/">Criando ambientes virtualizados com Vagrant</a></p>
<p style="margin-left: 40px;"><a href="http://net.tutsplus.com/tutorials/php/vagrant-what-why-and-how/">Vagrant: What, Why, and How</a></p>
<p style="margin-left: 40px;"><a href="http://www.vagrantbox.es/">A list of base boxes for Vagrant &#8211; Vagrantbox.es</a></p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" id="wp_rp_first"><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2010/08/03/kiss_keep-it-stupid-simple/" class="wp_rp_title">[Filosofia] KISS &#8211; Keep it stupid simple</a></li><li ><a href="http://blog.erkobridee.com/2009/03/05/mas-que-raios-e-esse-tal-de-bpel/" class="wp_rp_title">Mas que raios é esse tal de BPEL?!</a></li><li ><a href="http://blog.erkobridee.com/2008/05/27/google-maps-agora-no-flashflex-finalmente/" class="wp_rp_title">Google Maps agora no Flash/Flex : finalmente</a></li><li ><a href="http://blog.erkobridee.com/2007/11/30/adobe-flex-porque-usar-remoting/" class="wp_rp_title">Adobe Flex : porque usar remoting? </a></li><li ><a href="http://blog.erkobridee.com/2009/10/26/adobe-flex-porque-usar-remoting-2/" class="wp_rp_title">Adobe Flex : porque usar remoting?</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2737&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/11/19/vagrant-ambientes-de-desenvolvimento-virtuais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando o Node.js em um Windows XP sem Administrador</title>
		<link>http://blog.erkobridee.com/2012/11/16/utilizando-o-node-js-em-um-windows-xp-sem-administrador/</link>
		<comments>http://blog.erkobridee.com/2012/11/16/utilizando-o-node-js-em-um-windows-xp-sem-administrador/#comments</comments>
		<pubDate>Sat, 17 Nov 2012 02:06:10 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Node.js]]></category>
		<category><![CDATA[corporação]]></category>
		<category><![CDATA[Dica]]></category>
		<category><![CDATA[empresa]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[restrição]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2735</guid>
		<description><![CDATA[Cen&#225;rio:&#160;ambiente corporativo, m&#225;quinas Windows XP e usu&#225;rio sem permiss&#227;o de administra&#231;&#227;o. Observa&#231;&#227;o:&#160;embora o cen&#225;rio descrito seja o Windows XP, os passos para o Windows 7 s&#227;o bem parecidos. &#160; Instala&#231;&#227;o e Configura&#231;&#227;o Vers&#227;o Portav&#233;l -&#160;Node.js: 0.8.6 32-bits and 64-bits Esta vers&#227;o compactada possui 2 diret&#243;rios, contendo vers&#245;es para Windows 32 e 64 bits. Basta descompactar [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p><strong>Cen&aacute;rio:</strong>&nbsp;ambiente corporativo, m&aacute;quinas Windows XP e usu&aacute;rio sem permiss&atilde;o de administra&ccedil;&atilde;o.</p>
<p><strong>Observa&ccedil;&atilde;o:</strong>&nbsp;embora o cen&aacute;rio descrito seja o Windows XP, os passos para o Windows 7 s&atilde;o bem parecidos.</p>
<p>&nbsp;</p>
<h2>Instala&ccedil;&atilde;o e Configura&ccedil;&atilde;o</h2>
<p>Vers&atilde;o Portav&eacute;l -&nbsp;<a href="http://imsky.co/notes/nodejs-portable-windows-version-15">Node.js: 0.8.6 32-bits and 64-bits</a></p>
<p>Esta vers&atilde;o compactada possui 2 diret&oacute;rios, contendo vers&otilde;es para Windows 32 e 64 bits.</p>
<p>Basta descompactar a respectiva vers&atilde;o compat&iacute;vel com seu Windows em um diret&oacute;rio que voc&ecirc; possua direito de escrita.</p>
<p>Por exemplo:&nbsp;<code>D:/dev/nodejs</code></p>
<p>Feito isso, para facilitar o uso do Node.js pelo terminal de comandos, crie uma vari&aacute;vel de ambiente&nbsp;<em>NODE_PATH</em>&nbsp;e aponte para o diret&oacute;rio onde voc&ecirc; descompactou o Node.js, ent&atilde;o adicione o&nbsp;<em>NODE_PATH</em>&nbsp;ao final da vari&aacute;vel&nbsp;<em>PATH</em>.</p>
<p>Caminho:</p>
<p><code>Iniciar &gt; Configura&ccedil;&otilde;es &gt; Painel de Controle &gt; Sistema</code></p>
<p>ou</p>
<p><code>Windows Key (tecla com simbolo do Windows) + Pause</code>&nbsp;- Atalho para Sistema</p>
<p>Na janela do Sistema, selecione a aba: Avan&ccedil;ado, no final de janela, clique no bot&atilde;o :&nbsp;<em>&quot;Vari&aacute;veis de ambiente&quot;</em></p>
<p>Feito isso o Node.js ir&aacute; funcionar no terminal de comando atrav&eacute;s do comando:&nbsp;<strong><code>node</code></strong></p>
<p><strong>Observa&ccedil;&atilde;o:</strong>&nbsp;o npm (Node Packaged Modules), como est&aacute; no mesmo diret&oacute;rio do node, tamb&eacute;m estar&aacute; dispon&iacute;vel no terminal de comando, por&eacute;m ser&aacute; necess&aacute;rio algumas configura&ccedil;&otilde;es para seu funcionamento correto.</p>
<p>O diret&oacute;rio dos pacotes globais do npm est&aacute; apontando por padr&atilde;o para o diret&oacute;rio de dados de aplica&ccedil;&otilde;es do usu&aacute;rio no Windows, ou seja, em outro diret&oacute;rio, diferente do local onde est&aacute; o Node.js e o NPM. Com isso, ser&aacute; necess&aacute;rio atualizar o diret&oacute;rio dos pacotes globais utilizados pelo npm.</p>
<p>Para isso via, terminal de comando utilize o comando:</p>
<p><code>npm config set prefix {Diret&oacute;rio do Node.js e NPM}</code></p>
<p>Feito isto, o Node.js e o NPM est&atilde;o prontos para uso.</p>
<p>&nbsp;</p>
<h2>NPM vs. Proxy NTLM</h2>
<p>Lembrando que estamos em um ambiente corporativo, neste temos um PROXY entre o computador e a internet, e normalmente as redes corporativas utilizam PROXY NTLM, o npm n&atilde;o conseguir&aacute; acessar o reposit&oacute;rio na internet. Com isto, ser&aacute; necess&aacute;rio o uso de um recurso auxiliar para passar pelo PROXY.</p>
<p>Conforme&nbsp;<a href="https://github.com/isaacs/npm/issues/2119">GitHub NPM ISSUE 2119</a>&nbsp;o NPM n&atilde;o possui suporte para acessar o reposit&oacute;rio na internet atrav&eacute;s de um Proxy NTLM. Segundo a dica dispon&iacute;vel na pr&oacute;pria issue, ser&aacute; necess&aacute;rio utilizar uma alternativa local para passar pelo Proxy NTLM.</p>
<p>Dentre as alternativas apresentadas, foi utilizado:</p>
<p><a href="http://ntlmaps.sourceforge.net/">NtlmMaps &#8211; NTLM Authorization Proxy Server (Python)</a>&nbsp;|&nbsp;<a href="https://github.com/tchype/ntlmaps">GitHub Code</a></p>
<p><strong>NtlmMaps</strong>&nbsp;- &eacute; um proxy local onde se configura o proxy da empresa, definindo as configura&ccedil;&otilde;es de acesso.</p>
<p>&nbsp;</p>
<h3>Instalando e Configurando o Python 2.x</h3>
<p>Como esta implementa&ccedil;&atilde;o &eacute; em Python, ser&aacute; necess&aacute;rio ter o Python 2.x no computador.</p>
<p><a href="http://www.python.org/download/">Download : Python 2.x.x Windows Installer</a></p>
<p>Durante o processo de instala&ccedil;&atilde;o, indique o diret&oacute;rio onde voc&ecirc; possua acesso para escrita.</p>
<p>Por exemplo:&nbsp;<code>D:/dev/python</code></p>
<p>Feito isso, para facilitar o uso do python pelo terminal de comandos, crie uma vari&aacute;vel de ambiente&nbsp;<em>PYTHON_PATH</em>&nbsp;e aponte para o diret&oacute;rio onde voc&ecirc; descompactou o Node.js, ent&atilde;o adicione o&nbsp;<em>PYTHON_PATH</em>&nbsp;ao final da vari&aacute;vel&nbsp;<em>PATH</em>.</p>
<p>caminho:</p>
<p><code>Iniciar &gt; Configura&ccedil;&otilde;es &gt; Painel de Controle &gt; Sistema</code></p>
<p>ou</p>
<p><code>Windows Key (tecla com simbolo do Windows) + Pause</code>&nbsp;- Atalho para Sistema</p>
<p>Na janela do Sistema, selecione a aba: Avan&ccedil;ado, no final de janela, clique no bot&atilde;o :&nbsp;<em>&quot;Vari&aacute;veis de ambiente&quot;</em></p>
<p>&nbsp;</p>
<h3>Instalando e Configurando o NtlmMaps</h3>
<p>Descompacte o arquivo do ntlmmaps em um diret&oacute;rio que possua acesso para escrita.</p>
<p>Por exemplo:&nbsp;<code>D:/dev/ntlmmaps</code></p>
<p>Configurando o NtlmMaps:</p>
<ul>
<li>edite o arquivo server.cfg, os items abaixo (mantive a ordem em que aparece no arquivo):</li>
</ul>
<blockquote>
<p>PARENT_PROXY : host do proxy da empresa, sem o &quot;http://&quot;</p>
<p>PARENT_PROXY_PORT : respectiva porta utilizada pelo proxy da empresa</p>
<p>NT_DOMAIN : nome do dom&iacute;nio de rede que a sua empresa utiliza</p>
<p>USER : seu login de rede</p>
<p>PASSWORD : sua senha de rede, por&eacute;m caso n&atilde;o queria preencher &eacute; poss&iacute;vel, ent&atilde;o quando for executar a aplica&ccedil;&atilde;o lhe ser&aacute; solicitado a sua senha da rede</p>
<p>NT_PART : o valor padr&atilde;o deste atributo &eacute; 0, por&eacute;m em algumas redes NTLM precisam dessa informa&ccedil;&atilde;o como no meu caso, ent&atilde;o este atributo foi alterado para 1</p>
</blockquote>
<ul>
<li>edite o arquivo :&nbsp;<span style="font-family: monospace;">runserver.bat</span></li>
</ul>
<blockquote>
<p>inicialmente ele possui um caminho predefinido do local de instala&ccedil;&atilde;o do Python, por&eacute;m como foi feito anteriormenteadicionado o Python ao PATH do Windows, basta alterar essa string por: python &gt;&gt; onde a linha ficar&aacute;:&nbsp;<code>python main.py</code></p>
</blockquote>
<p>Uma vez configurado, execute o&nbsp;<code>runserver.bat</code></p>
<p>&nbsp;</p>
<h2>NPM configurando o Proxy Local</h2>
<p>Pelo terminal de comando execute os respectivos comandos para configurar o NPM.</p>
<p><code>npm config set proxy http://localhost:5865</code></p>
<p><code>npm config set registry &quot;http://registry.npmjs.org/&quot;</code></p>
<p>Aponta o NPM para o proxy local e altera a URL do reposit&oacute;rio de pacotes do Node.js do https para o http.</p>
<p>Feito as respectivas configura&ccedil;&otilde;es, agora o seu ambiente de desenvolvimento Node.js e NPM ir&aacute; funcionar corretamente via linha de comando.</p>
<p>&nbsp;</p>
<h2>Ferramenta de desenvolvimento</h2>
<p>Uma boa ferramenta que pode ser utilizada neste ambiente, &eacute; o&nbsp;<a href="http://www.sublimetext.com/2">Sublime Text 2</a>, a qual possui vers&atilde;o port&aacute;vel.</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2010/07/09/como-jogar-call-of-dudy-4-mw-em-servidores-do-brasil/" class="wp_rp_title">Como jogar Call Of Dudy 4 MW em servidores do Brasil?</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li><li ><a href="http://blog.erkobridee.com/2009/10/26/adobe-flex-httpservice-enviando-parametros-para-a-aplicacao-web-em-java/" class="wp_rp_title">Adobe Flex (HttpService) enviando parametros para a aplicação web em Java</a></li><li ><a href="http://blog.erkobridee.com/2010/03/08/oracle-weblogic-server-11g-release-1-10-3-2/" class="wp_rp_title">Oracle WebLogic Server 11g Release 1 (10.3.2)</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2735&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/11/16/utilizando-o-node-js-em-um-windows-xp-sem-administrador/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Node.js &#8211; JavaScript no Servidor [visão geral]</title>
		<link>http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/</link>
		<comments>http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/#comments</comments>
		<pubDate>Sat, 17 Nov 2012 01:31:14 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Node.js]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2730</guid>
		<description><![CDATA[Uma visão geral sobre Node.js]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p style="text-align: center;"><strong>Aten&ccedil;&atilde;o:</strong> esta publica&ccedil;&atilde;o &eacute; uma vis&atilde;o geral e superficial sobre o assunto.</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/11/nodejs-logo.png"><img alt="" class="aligncenter size-medium wp-image-2732" height="150" src="http://blog.erkobridee.com/wp-content/uploads/2012/11/nodejs-logo-300x150.png" title="nodejs-logo" width="300" /></a></p>
<div style="text-align: center;"><a href="http://nodejs.org/">Node.js</a>&nbsp;/ <a href="https://github.com/joyent/node">C&oacute;digo no GitHub</a>&nbsp;/ <a href="http://nodejs.org/community/">Comunidade</a></div>
<div>&nbsp;</div>
<blockquote>
<div>O Node.js &eacute; uma plataforma constru&iacute;da sobre a engine de JavaScript do Google Chrome (V8), para constru&ccedil;&atilde;o de aplica&ccedil;&otilde;es, escal&aacute;veis e de r&aacute;pido desenvolvimento. Utiliza um modelo baseado em eventos e I/O n&atilde;o bloqueantes, o que torna o Node.js leve e eficiente, perfeito para aplica&ccedil;&otilde;es com grande volume de informa&ccedil;&otilde;es e real-time, que s&atilde;o acessadas por diversos tipos de disposit&iacute;vos.</div>
</blockquote>
<div>&nbsp;</div>
<div>Pessoalmente, conheci, ou mais precisamente, ouvi falar sobre o Node.js, que era JavaScript executando no servidor. Um caso de uso, a rede social <a href="http://geekli.st/">Geekli.st</a>&nbsp;(<a href="http://geekli.st/about">sobre</a>), foi constru&iacute;da utilizando o Node.js.</div>
<div>&nbsp;</div>
<div>Mas a minha motiva&ccedil;&atilde;o, que me fez utilizar o Node.js, foi a possibilidade de executar c&oacute;digos JavaScript, sem a necessidade e utilizar um Web Browser, o que me facilitaria os testes e estudos da linguagem JavaScript.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Uma vis&atilde;o de alto n&iacute;vel sobre o que &eacute; o Node.js, segundo o que compreendi:</div>
<div>&nbsp;</div>
<ol>
<li>&nbsp;&Eacute; o V8 (<a href="http://code.google.com/p/v8/">Google Chrome JavaScript Runtime</a>), que executa o JavaScript</li>
<li>&nbsp;Possui uma camada de c&oacute;digo C++ que realiza a comunica&ccedil;&atilde;o entre o V8 e o hardware</li>
<li>Disponibiliza um conjunto grande de bibliotecas para o desenvolvimento de aplica&ccedil;&otilde;es (<a href="http://nodejs.org/api/">API Docs</a>)</li>
</ol>
<div><a href="http://blog.erkobridee.com/wp-content/uploads/2012/11/nodejsStack.jpg"><img alt="" class="aligncenter size-full wp-image-2733" height="207" src="http://blog.erkobridee.com/wp-content/uploads/2012/11/nodejsStack.jpg" title="nodejsStack" width="385" /></a></div>
<div style="text-align: center;">(<a href="http://www.openwebosproject.org/docs/developer_guide/javascript_services/">Fonte</a>)</div>
<div>&nbsp;</div>
<div style="">Nas vers&otilde;es mais recentes do Node.js (v0.6+), dispon&iacute;veis para download, nos pacotes de instala&ccedil;&atilde;o, o Node.js vem acompanhado pelo NPM &#8211; <a href="https://npmjs.org/" style="">Node Packaged Modules</a>&nbsp;(comando via terminal : <em style=""><strong style="">npm</strong></em>), c&oacute;digo no <a href="https://github.com/isaacs/npm" style="">GitHub</a>.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>O NPM &eacute; um gerenciador de depend&ecirc;ncias para aplica&ccedil;&otilde;es em Node.js, os quais s&atilde;o instalados no sub-diret&oacute;rio <strong>/node_modules</strong> do diret&oacute;rio da aplica&ccedil;&atilde;o, ou esta depend&ecirc;ncia pode ser instalada como global, por exemplo: <em><strong>npm install express -g</strong></em></div>
<div>&nbsp;</div>
<div>Atualmente o NPM conta com mais de 17 mil pacotes dispon&iacute;veis.&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Fato interessante sobre o Node.js no Windows</strong></div>
<div>&nbsp;</div>
<div>A Microsoft fez uma parceria com a <a href="http://joyent.com/">Joyent</a>&nbsp;na metade de 2011, tendo como objetivo portar o Node.js para Windows,&nbsp;com o m&aacute;ximo de performance. Sendo assim, os execut&aacute;vel <em>node.exe</em> e funcionamento na plataforma Windows, Windows Server e <a href="http://www.windowsazure.com/en-us/develop/nodejs/">Windows Azure</a>&nbsp;(<a href="http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/">Getting Started</a>), possuem o suporte da pr&oacute;pria Microsoft. (<a href="http://blog.nodejs.org/2011/06/23/porting-node-to-windows-with-microsoft%25e2%2580%2599s-help/">fonte da informa&ccedil;&atilde;o</a>)</div>
<div>&nbsp;</div>
<blockquote>
<div>Joyent &#8211; empresa que mantem e atualiza o c&oacute;digo do Node.js no GitHub</div>
</blockquote>
<div>&nbsp;</div>
<div>Meus testes com Node.js : <a href="https://github.com/erkobridee/lab-nodejs">GitHub / lab-nodejs</a></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Material interessante para quem est&aacute; come&ccedil;ando:</strong></div>
<div>&nbsp;</div>
<div><a href="http://www.slideshare.net/caioribeiropereira/conhecendo-mundo-nodejs-12813969">SlideShare &#8211; Conhecendo mundo Node.js</a></div>
<div>&nbsp;</div>
<div><a href="http://imasters.com.br/artigo/22016/javascript/o-que-exatamente-e-o-nodejs">iMasters -&nbsp;O que exatamente &eacute; o Node.js?</a></div>
<div>&nbsp;</div>
<div><a href="http://www.udgwebdev.com/infografico-what-is-node-js/">UDG -&nbsp;Infogr&aacute;fico: What is Node.js?</a></div>
<div>&nbsp;</div>
<div><a href="http://www.tocadoelfo.com.br/2012/04/por-que-estou-aprendendo-nodejs.html">Toca do elfo -&nbsp;Por que estou aprendendo Node.js?</a></div>
<div>&nbsp;</div>
<div><a href="http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/">Nettuts+ -&nbsp;Node.js for Beginners</a></div>
<div>&nbsp;</div>
<div><a href="http://grokpodcast.com/tag/node-js/">Grok Podcast &#8211; Node.js</a></div>
<div>&nbsp;</div>
<div>Links que tenho catalogado sobre Node.js : <a href="http://delicious.com/erko.bridee/node.js">delicious.com/erko.bridee</a></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Ferramenta de Desenvolvimento:</strong>&nbsp;estou utilizando o <a href="http://www.sublimetext.com/2">Sublime Text 2</a> e o <a href="https://github.com/tanepiper/SublimeText-Nodejs">plugin para Node.js</a></div>
<div>&nbsp;</div>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/11/16/utilizando-o-node-js-em-um-windows-xp-sem-administrador/" class="wp_rp_title">Utilizando o Node.js em um Windows XP sem Administrador</a></li><li ><a href="http://blog.erkobridee.com/2010/10/24/adobe-air-package-assistant-pro/" class="wp_rp_title">[ Adobe AIR ] Package Assistant Pro</a></li><li ><a href="http://blog.erkobridee.com/2009/10/26/pc-vs-mac-vs-linux-traduzindo-uma-imagem/" class="wp_rp_title">PC vs. Mac vs. Linux : traduzindo, uma imagem</a></li><li ><a href="http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/" class="wp_rp_title">Voltando ao mundo HTML+JS e agora?</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2730&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AngularJS &#8211; Consumindo a API do GitHub</title>
		<link>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/</link>
		<comments>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 17:02:00 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[angularjs]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[poc]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2718</guid>
		<description><![CDATA[Post sobre um teste que realizei utilizando o Angular.js acessando a api do GitHub]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Eis que estava me atualizando e retornando ao mundo do HTML + JS + CSS, com isso a primera tarefa foi ver o que havia de bom no mercado. Observei que as libs e frameworks de JavaScript evoluiram al&eacute;m do que eu havia imaginado. Durante meus estudos e pesquisas acabei vendo muitos exemplos, onde as pessoas estavam utilizando o <a href="http://backbonejs.org/">Backbone.js</a>&nbsp;(<a href="http://delicious.com/erko.bridee/backbonejs">alguns links sobre</a>), por&eacute;m n&atilde;o gostei muito da forma de trabalho, ent&atilde;o um dia conversando com a galera na internet, o <a href="https://twitter.com/vedovelli">@vedovelli</a> comentou sobre o <a href="http://angularjs.org/">Angular.js</a> e outras pessoas al&eacute;m dele tamb&eacute;m me falaram muito bem a seu respeito, com isto resolvi construir uma aplica&ccedil;&atilde;o e mecher um pouco para ver como &eacute; que ele se comporta durante o desenvolvimento de uma aplica&ccedil;&atilde;o.</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-logo.png"><img alt="" class="aligncenter size-medium wp-image-2719" height="161" src="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-logo-300x161.png" title="AngularJS — Superheroic JavaScript MVC Framework" width="300" /></a></p>
<blockquote>
<p>Com a miss&atilde;o de enriquecer o vocabul&aacute;rio HTML o framework <a href="http://angularjs.org/">AngularJS</a> chega com a marca Google de simplicidade e promete um workflow diferente para os desenvolvedores.</p>
</blockquote>
<p>&nbsp;</p>
<p>Aten&ccedil;&atilde;o n&atilde;o tenho inten&ccedil;&atilde;o de escrever um post introdut&oacute;rio sobre o Angular.js, caso queira algo mais inicial recomendo antes de continuar a leitura ver os respectivos post&#39;s:&nbsp;</p>
<p style="margin-left: 40px; "><a href="http://blog.vedovelli.com.br/?p=1946">Vedovelli -&nbsp;Introdu&ccedil;&atilde;o ao AngularJS</a></p>
<p style="margin-left: 40px; "><a href="http://tableless.com.br/criando-uma-aplicacao-simples-com-angularjs/">Tableless -&nbsp;Criando uma aplica&ccedil;&atilde;o simples com AngularJS</a></p>
<p>&nbsp;</p>
<p><strong>O que me chamou aten&ccedil;&atilde;o e me agradou no Angular.js?</strong></p>
<p style="margin-left: 40px; ">Como venho do desenvolvimento de sistemas utilizando o Adobe Flex, sempre gostei da facilidade e flexibilidade para o desenvolvimento e defini&ccedil;&otilde;es de novos componentes, al&eacute;m da facilidade de programa&ccedil;&atilde;o oferecida pelo Flex. Algo similar a essa caracter&iacute;stica observei no Angular.js, em resumo, achei muito f&aacute;cil e pr&aacute;tico desenvolver uma aplica&ccedil;&atilde;o utilizando o Angular.js.</p>
<p style="margin-left: 40px; ">O Angular.js possui uma funcionalidade de inje&ccedil;&atilde;o de depend&ecirc;ncias que &eacute; muito inteligente e funciona muito bem. Por si s&oacute; ele j&aacute; consegue reconhecer os parametros dos controllers e injetar o respectivo objeto referente ao nome do param&acirc;metro.</p>
<p style="margin-left: 40px; ">Por&eacute;m o Angular.js n&atilde;o te limita e restringe a utilizar obrigat&oacute;riamente estes nomes, que ele j&aacute; sabe tratar, caso queira, voc&ecirc; pode definir livremente o nome do parametro que desejar, ent&atilde;o, basta definir o que deve ser injetado na respectiva sequ&ecirc;ncia dos par&acirc;metros que foi definido na <em>function</em>, conforme descrito na documenta&ccedil;&atilde;o (<a href="http://code.angularjs.org/1.0.1/docs-1.0.1/api/AUTO.$injector">link $injector</a>):</p>
<p><script src="https://gist.github.com/3182467.js"> </script></p>
<p style="margin-left: 40px; ">Outro ponto forte do Angular.js que me agradou &eacute; sua documenta&ccedil;&atilde;o: <a href="http://code.angularjs.org/1.0.1/docs-1.0.1/api">Doc 1.0.1</a> / <a href="http://docs.angularjs.org/guide/">Guide</a></p>
<p style="margin-left: 40px; ">&nbsp;</p>
<p><strong>Qual teste que eu realizei utilizando o Angular.js?</strong></p>
<p style="margin-left: 40px; ">J&aacute; aviso, n&atilde;o fui nada criativo, resolvi construir a minha vers&atilde;o da aplica&ccedil;&atilde;o:&nbsp;<strong><em>AngularJS GitHub Contributors</em></strong> ( <a href="http://daha.github.com/angularJS-github-contributors/">app</a> | <a href="https://github.com/daha/angularJS-github-contributors">github</a> ), a qual acessava a API do GitHub e lista os reposit&oacute;rios p&uacute;blicos de um determinado usu&aacute;rio e respectivos contribuidores dos reposit&oacute;rios. Onde esta aplicac&atilde;o utiliza a <a href="http://yuilibrary.com/">YUI Library</a> do Yahoo para a defini&ccedil;&atilde;o da interface.</p>
<p style="margin-left: 40px; ">No meu caso reconstrui a aplica&ccedil;&atilde;o utilizando como base o <a href="http://twitter.github.com/bootstrap">Twitter Bootstrap</a> para a defini&ccedil;&atilde;o do layout da aplica&ccedil;&atilde;o, e mudei algumas caracter&iacute;sticas da organiza&ccedil;&atilde;o do c&oacute;digo, por&eacute;m na ess&ecirc;ncia a id&eacute;ia e aplica&ccedil;&atilde;o &eacute; a mesma, com o adicional da listagem dos Gists p&uacute;blicos do usu&aacute;rio.</p>
<p style="margin-left: 40px; ">Outra diferen&ccedil;a na implementa&ccedil;&atilde;o deste projeto foi a utiliza&ccedil;&atilde;o do modelo de Closures para a defini&ccedil;&atilde;o dos controllers (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/js/controllers.js">controllers.js</a>), seguindo uma boa pr&aacute;tica de programa&ccedil;&atilde;o com JavaScript. Lembrando que o escopo de qualquer declara&ccedil;&atilde;o de vari&aacute;vel e/ou fun&ccedil;&atilde;o &eacute; global valido para todo o HTML em execu&ccedil;&atilde;o pelo browser, o que pode gerar alguns problemas conforme a aplica&ccedil;&atilde;o cresce de tamanho.</p>
<p style="margin-left: 40px; ">Um recurso que utilizei nesta aplica&ccedil;&atilde;o foi o roteamento das URLs da aplica&ccedil;&atilde;o (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/js/app.js">app.js</a>) e inje&ccedil;&atilde;o dos respectivos templates de html no (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/index.html">index.html)</a>, onde est&aacute; a defini&ccedil;&atilde;o do <em>div</em> com o atributo <em>ng-view</em></p>
<p>&nbsp;</p>
<p><strong>Mas onde est&aacute; esta aplica&ccedil;&atilde;o que at&eacute; aqui voc&ecirc; apenas falou?</strong></p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-github-info-app.png"><img alt="" class="aligncenter size-medium wp-image-2720" height="149" src="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-github-info-app-300x149.png" style="" title="Angular.js - GitHub Info" width="300" /></a></p>
<p style="margin-left: 40px; ">Calma, calma, segue o link: ver a <a href="http://erkobridee.github.io/angularjs-github-info/">aplica&ccedil;&atilde;o em execu&ccedil;&atilde;o</a> / <a href="https://github.com/erkobridee/angularjs-github-info">c&oacute;digo no github.</a></p>
<p>&nbsp;</p>
<p><strong>E a estrutura ad aplica&ccedil;&atilde;o?</strong></p>
<div style="margin-left: 40px; ">
<div><strong><em>/angularjs-github-info</em></strong></div>
<div><strong><em>&nbsp; &nbsp; /css</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; app.css</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o dos estilos da utilizados na aplica&ccedil;&atilde;o</span></div>
<div><strong><em>&nbsp; &nbsp; /js</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; app.js&nbsp;</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o dos roteamento das URLs para os respectivos templates e controllers</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; components.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o das tags das abas</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; controllers.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o das regras e processamentos das telas, utilizando Closure</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; services.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do acesso a API do GitHub</span></div>
<div><strong><em>&nbsp; &nbsp; /tpl</em></strong></div>
<div><strong><em>&nbsp; &nbsp; &nbsp; &nbsp; /github</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo-constributors.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem das pessoas que contribuiram no projeto</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo-info.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es do reposit&oacute;rio selecionado</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do layout referente a tela de visualiza&ccedil;&atilde;o das informa&ccedil;&otilde;es do reposit&oacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-gists.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem dos gists p&uacute;blicos de um determinado usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-info.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es de um usu&aacute;rio do GitHub</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-repos.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem dos reposit&oacute;rios p&uacute;blicos de um determinado usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do layout referente a tela de visualiza&ccedil;&atilde;o das informa&ccedil;&otilde;es do usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; about.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es a respeito da aplica&ccedil;&atilde;o</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; search.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P&aacute;gina inicial injetada pelo AngularJS definido no js/app.js</span></div>
<div><span style="color:#8b4513;">&nbsp; &nbsp; index.html</span></div>
</div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Considera&ccedil;&otilde;es finais:</strong></div>
<div>&nbsp;</div>
<div>O Angular.js me surpreendeu bastante, e caso no seu caso, assim como eu vem do desenvolvimento de sistemas com Adobe Flex, ao utilizar o Angular.js, prov&aacute;vel que voc&ecirc; se sinta em casa.</div>
<div>&nbsp;</div>
<div>Utilizando ele consegui facilmente trabalhar no modelo Cliente e Servidor, realizando a comunica&ccedil;&atilde;o atrav&eacute;s de RESTful, sendo este formato similar ao que usava no Flex onde a comunica&ccedil;&atilde;o era realizada atrav&eacute;s de servi&ccedil;os utilizando o protocolo AMF.</div>
<div>&nbsp;</div>
<div>Bom, mas aqui deixo uma dica, n&atilde;o basta apenas migrar para o Angular.js, recomento que voc&ecirc; invista no aprendizado do JavaScript, e &eacute; s&eacute;rio, n&atilde;o ache que voc&ecirc; sabe programar JavaScript, n&atilde;o cometa o mesmo erro que cometi. O JavaScript possui suas peculiaridades pr&oacute;prias, onde at&eacute; a forma de escrever a sintaxe dos seus c&oacute;digos podem e muito provavelmente v&atilde;o impactar na execu&ccedil;&atilde;o do seu c&oacute;digo JavaScript.</div>
<div>&nbsp;</div>
<div>Mas vou lhe poupar um pouco o trabalho, segue minhas recomenda&ccedil;&otilde;es para o caso:</div>
<div>&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=hQVTIJBZook">Google Tech Talks 2009 : JavaScript &#8211; The Good Parts</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=mHtdZgou0qU">Google Tech Talks 2009 : Speed Up Your JavaScript</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=UJPdhx5zTaw">Google I/O 2012 &#8211; Breaking the JavaScript Speed Limit with V8</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://www.codeschool.com/courses/jquery-air-first-flight">Curso gratu&iacute;to da Code School : JQuery</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://developer.mozilla.org/en/JavaScript/Strict_mode">JavaScript &#8211; Strict Mode &#8211; MDN</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://www.smashingmagazine.com/learning-javascript-essentials-guidelines-tutorials/">Learning JavaScript: Essentials And Guidelines</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://omar.gy/how-i-ended-up-enjoying-javascript/">How I Ended Up Enjoying JavaScript</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Vai um b&ocirc;nus ai?!</strong></div>
<div>&nbsp;</div>
<div>Percebeu que eu fiz a publica&ccedil;&atilde;o da aplica&ccedil;&atilde;o diretamente no GitHub? Eis a dica de como fazer o mesmo: <a href="https://gist.github.com/833223">neste gist</a></div>
<div>&nbsp;</div>
<div>Segue meus links salvos sobre: <a href="http://delicious.com/erko.bridee/angular.js">Angular.js</a> / <a href="http://delicious.com/erko.bridee/backbone.js">Backbone.js</a> / <a href="http://delicious.com/erko.bridee/javascript">JavaScript</a></div>
<div>&nbsp;</div>
<div>Outros projetos de exemplo, que utiliza o Angular.js no <a href="https://github.com/erkobridee">Github</a>, com nomes iniciados por: <strong>restful-bookmarks-&#8230;</strong></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Atualiza&ccedil;&otilde;es (Maio/2013):</strong></div>
<div>&nbsp;</div>
<div>- C&oacute;digo da aplica&ccedil;&atilde;o foi movido para o diret&oacute;rio <em><strong>/app</strong></em></div>
<div>&nbsp;</div>
<div>- Foi adicionado o <a href="http://gruntjs.com/">Grunt.js</a> ao projeto, para facilitar o desenvolvimento e atualiza&ccedil;&atilde;o do branch <em><strong>gh-pages</strong></em> (o Grunt.js precisa do <a href="http://nodejs.org/">Node.js</a> para executar)&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/" class="wp_rp_title">Voltando ao mundo HTML+JS e agora?</a></li><li ><a href="http://blog.erkobridee.com/2011/12/05/play-framework-alta-produtividade-em-java/" class="wp_rp_title">Play Framework &#8211; alta produtividade em Java</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/" class="wp_rp_title">CoffeeScript, lidando com JavaScript sem sofrimento</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2718&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Bill Gates &#8211; 11 regras da vida que a escola não ensina</title>
		<link>http://blog.erkobridee.com/2012/06/21/bill-gates-11-regras-da-vida-que-a-escola-nao-ensina/</link>
		<comments>http://blog.erkobridee.com/2012/06/21/bill-gates-11-regras-da-vida-que-a-escola-nao-ensina/#comments</comments>
		<pubDate>Fri, 22 Jun 2012 01:16:35 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Bill Gates]]></category>
		<category><![CDATA[Ensinamentos]]></category>
		<category><![CDATA[Vida]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2713</guid>
		<description><![CDATA[Bill Gates (wiki), um dos homens mais ricos do mundo, um dos fundadores da Microsoft, ao ser convidado para palestrar em uma escola secund&#225;ria, em poucos minutos, compartilhou um grande segredo da vida real, os quais n&#227;o s&#227;o ensinados nas escolas. &#160; Segue as regras: 01 &#8211; A vida n&#227;o &#233; f&#225;cil &#8211; acostume-se com [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Bill Gates (<a href="http://pt.wikipedia.org/wiki/Bill_Gates">wiki</a>), um dos homens mais ricos do mundo, um dos fundadores da Microsoft, ao ser convidado para palestrar em uma escola secund&aacute;ria, em poucos minutos, compartilhou um grande segredo da vida real, os quais n&atilde;o s&atilde;o ensinados nas escolas.</p>
<p>&nbsp;</p>
<p><strong>Segue as regras:</strong></p>
<p><strong>01 &#8211; </strong>A vida n&atilde;o &eacute; f&aacute;cil &ndash; acostume-se com isso.</p>
<p><strong>02 &#8211; </strong>O mundo n&atilde;o est&aacute; preocupado com a sua auto-estima. O mundo espera que voc&ecirc; fa&ccedil;a alguma coisa &uacute;til por ele ANTES de sentir-se bem com voc&ecirc; mesmo.</p>
<p><strong>03 &#8211; </strong>Voc&ecirc; n&atilde;o ganhar&aacute; R$ 20.000,00 por m&ecirc;s assim que sair da escola. Voc&ecirc; n&atilde;o ser&aacute; vice-presidente de uma empresa com carro e telefone &agrave; disposi&ccedil;&atilde;o antes que voc&ecirc; tenha conseguido comprar seu pr&oacute;prio carro e telefone.</p>
<p><strong>04 &#8211; </strong>Se voc&ecirc; acha seu professor rude, espere at&eacute; ter um Chefe. Ele n&atilde;o ter&aacute; pena de voc&ecirc;.</p>
<p><strong>05 &#8211; </strong>Vender jornal velho ou trabalhar durante as f&eacute;rias n&atilde;o est&aacute; abaixo da sua posi&ccedil;&atilde;o social. Seus av&oacute;s t&ecirc;m uma palavra diferente para isso: eles chamam de oportunidade.</p>
<p><strong>06 &#8211; </strong>Se voc&ecirc; fracassar, n&atilde;o &eacute; culpa de seus pais. Ent&atilde;o n&atilde;o lamente seus erros, aprenda com eles.</p>
<p><strong>07 &#8211; </strong>Antes de voc&ecirc; nascer, seus pais n&atilde;o eram t&atilde;o cr&iacute;ticos como agora. Eles s&oacute; ficaram assim por pagar as suas contas, lavar suas roupas e ouvir voc&ecirc; dizer que eles s&atilde;o &ldquo;rid&iacute;culos&rdquo;. Ent&atilde;o antes de salvar o planeta para a pr&oacute;xima gera&ccedil;&atilde;o querendo consertar os erros da gera&ccedil;&atilde;o dos seus pais, tente limpar seu pr&oacute;prio quarto.</p>
<p><strong>08 &#8211; </strong>Sua escola pode ter eliminado a distin&ccedil;&atilde;o entre vencedores e perdedores, mas a vida n&atilde;o &eacute; assim. Em algumas escolas voc&ecirc; n&atilde;o repete mais de ano e tem quantas chances precisar at&eacute; acertar. Isto n&atilde;o se parece com absolutamente NADA na vida real. Se pisar na bola, est&aacute; despedido&hellip; RUA !!!!! Fa&ccedil;a certo da primeira vez!</p>
<p><strong>09 &#8211; </strong>A vida n&atilde;o &eacute; dividida em semestres. Voc&ecirc; n&atilde;o ter&aacute; sempre os ver&otilde;es livres e &eacute; pouco prov&aacute;vel que outros empregados o ajudem a cumprir suas tarefas no fim de cada per&iacute;odo.</p>
<p><strong>10 &#8211; </strong>Televis&atilde;o N&Atilde;O &eacute; vida real. Na vida real, as pessoas t&ecirc;m que deixar o barzinho ou a boate e ir trabalhar.</p>
<p><strong>11 &#8211; </strong>Seja legal com os CDFs/Nerds (aqueles estudantes que os demais julgam que s&atilde;o uns babacas). Existe uma grande probabilidade de voc&ecirc; vir a trabalhar PARA um deles.</p>
<p>&nbsp;</p>
<p><strong>Fonte:</strong> <a href="http://www.youtube.com/watch?v=giRKt0-lSbg">Video Youtube</a> / <a href="http://universouniversal.wordpress.com/2009/07/31/as-11-regras-de-bill-gates-o-que-as-escolas-nao-ensinam/">Universo Universal</a></p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/04/09/50-de-chance-para-sim-e-para-nao-arrisque/" class="wp_rp_title">50% de chance para sim e para não, arrisque!</a></li><li ><a href="http://blog.erkobridee.com/2010/03/13/privacidade-e-a-internet/" class="wp_rp_title">Privacidade e a Internet</a></li><li ><a href="http://blog.erkobridee.com/2009/10/18/hilario-como-arrumar-um-marido-rico/" class="wp_rp_title">[Hilário] Como arrumar um marido rico</a></li><li ><a href="http://blog.erkobridee.com/2010/01/07/comedia-da-vida-real-amizade-homens-x-mulheres/" class="wp_rp_title">[Comédia da vida real] amizade : homens x mulheres</a></li><li ><a href="http://blog.erkobridee.com/2009/11/13/um-inspetor-de-sorte/" class="wp_rp_title">Um inspetor de sorte</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2713&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/06/21/bill-gates-11-regras-da-vida-que-a-escola-nao-ensina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac e um incrível Kernel Panic no update do Thunderbolt</title>
		<link>http://blog.erkobridee.com/2012/06/12/mac-e-um-incrivel-kernel-panic-no-update-do-thunderbolt/</link>
		<comments>http://blog.erkobridee.com/2012/06/12/mac-e-um-incrivel-kernel-panic-no-update-do-thunderbolt/#comments</comments>
		<pubDate>Wed, 13 Jun 2012 02:00:45 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Sistema Operacional]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[Kernel Panic]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X Lion]]></category>
		<category><![CDATA[Thunderbolt]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2708</guid>
		<description><![CDATA[Eis que hoje (12/06/2012), sai um update para o Mac OS X Lion e como de costume mandei atualizar sem olhar os itens, ao termino da instala&#231;&#227;o aparece uma mensagem de que ocorreu um erro inesperado e fica nisso, ent&#227;o vamos tentar reiniciar o Mac na marra, a grande surpressa, me deparei com um Kernel [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Eis que hoje (12/06/2012), sai um update para o Mac OS X Lion e como de costume mandei atualizar sem olhar os itens, ao termino da instala&ccedil;&atilde;o aparece uma mensagem de que ocorreu um erro inesperado e fica nisso, ent&atilde;o vamos tentar reiniciar o Mac na marra, a grande surpressa, me deparei com um Kernel Panic no Mac&#8230;</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/06/mac_kernel_panic.jpg"><img alt="" class="aligncenter size-medium wp-image-2709" height="225" src="http://blog.erkobridee.com/wp-content/uploads/2012/06/mac_kernel_panic-300x225.jpg" title="mac_kernel_panic" width="300" /></a></p>
<blockquote>
<p>Eu havia visto os tuites do <a href="http://twitter.com/jandersonfc">@jandersonfc</a> [<a href="https://twitter.com/jandersonfc/status/212532469986111488">tuite</a>] sobre o caso, mas como n&atilde;o havia lido direto n&atilde;o reparei qual foi a causa. No caso foi exatamente a mesma que a causa do meu problema. Atualiza&ccedil;&atilde;o do firmware referente ao Thunderbolt</p>
</blockquote>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/06/jandersonfc_mac_kernel_panic.jpeg"><img alt="" class="aligncenter size-medium wp-image-2710" height="300" src="http://blog.erkobridee.com/wp-content/uploads/2012/06/jandersonfc_mac_kernel_panic-300x300.jpg" title="jandersonfc_mac_kernel_panic" width="300" /></a></p>
<p>Primeira rea&ccedil;&atilde;o ao ver a mensagem:&nbsp;</p>
<blockquote>
<p>Putz, j&aacute; era o HD, perdi tudo&#8230;</p>
<p>Ser&aacute; que tem uma assist&ecirc;ncia t&ecirc;cnica aonde?</p>
</blockquote>
<p>&nbsp;</p>
<p>Depois dessas perguntas, conversando com o Janderson que tamb&eacute;m teve o mesmo problema, hora de procurar respostas, ou saber quantos mais estavam tento o mesmo problema&#8230;</p>
<p>Google, o que voc&ecirc; me diz sobre o caso?</p>
<blockquote>
<p>Durante a manh&atilde;, nada relevante nos resultados das buscas&#8230;</p>
</blockquote>
<p>O Janderson teve a id&eacute;ias de tentar ver na &aacute;rea de <a href="http://www.apple.com/support/">suporte</a> dos usu&aacute;rio no site da Apple e ver se tinha algo do assunto l&aacute;. Resultado, alguns j&aacute; haviam relatado o problema. Olhando a &aacute;rea:&nbsp;</p>
<blockquote>
<p><a href="https://discussions.apple.com/community/mac_os/mac_os_x_v10.7_lion">Apple Support Communities &gt; Mac OS &amp; System Software &gt; Mac OS X v10.7 Lion</a></p>
</blockquote>
<p>Eis que haviam relatos referente ao caso:</p>
<blockquote>
<p><a href="https://discussions.apple.com/thread/4020432?start=0&amp;tstart=0">Lion update today crashed MacBook Pro</a></p>
<p><a href="https://discussions.apple.com/message/18627773?start=0&amp;tstart=0#">How do i fix my kernel panic</a></p>
<p><a href="https://discussions.apple.com/thread/4020063?start=0&amp;tstart=0">None of the updates could be installed. Kernel panic</a></p>
</blockquote>
<p>Em um desses 3 t&oacute;picos achei um link em uma resposta apontando para um artigo escrito no site da Cnet.com:</p>
<blockquote>
<p><a href="http://reviews.cnet.com/8301-13727_7-57451440-263/thunderbolt-update-plaguing-macbook-pros-with-kernel-panics/">Thunderbolt Update plaguing MacBook Pros with kernel panics</a></p>
</blockquote>
<p>Das 3 dicas sugeridas no post, a primeira n&atilde;o funcionou, n&atilde;o acessou o modo de seguran&ccedil;a, a segunda restaurar a partir de um backup, tamb&eacute;m n&atilde;o foi vi&aacute;vel, pois n&atilde;o tinha um backup dispon&iacute;vel, ent&atilde;o me sobrou ir para reinstala&ccedil;&atilde;o do Lion.</p>
<p>&nbsp;</p>
<p>Fiz como sugerido, por&eacute;m na seguinte ordem:</p>
<blockquote>
<p>1 &#8211; reiniciei o mac, e ao ligar segurei as teclas: Command + R, para carregar a parti&ccedil;&atilde;o de recupera&ccedil;&atilde;o</p>
<p>2 &#8211; antes de pensar em instalar novamente, melhor garantir que o HD n&atilde;o foi perdido de vez, ent&atilde;o acessei a funcionalidade de reparo de HD e realizei os reparos dispon&iacute;veis</p>
<p>3 &#8211; selecionei a op&ccedil;&otilde;a para reinstalar o Mac OS X Lion (segundo dito, a reinstala&ccedil;&atilde;o do OS sobre a atual n&atilde;o perderia os dados). Para a instala&ccedil;&atilde;o por esta op&ccedil;&atilde;o ser&aacute; necess&aacute;ria uma conex&atilde;o ativa com a internet e autentica&ccedil;&atilde;o com login e senha na Apple Store (se voc&ecirc; j&aacute; comprou, s&oacute; colocar seu login e senha que n&atilde;o ser&aacute; cobrado novamente para que seja efetuado a instala&ccedil;&atilde;o)</p>
<p>4 &#8211; dependendo da velocidade da internet, o download do Lion vai demorar um pouco (no meu caso 4 hrs e quebrado), terminado o download, &eacute; realizado a instala&ccedil;&atilde;o, o que leva mais algum tempo</p>
<p>5 &#8211; finalizado a instala&ccedil;&atilde;o, o Lion ir&aacute; iniciar ap&oacute;s o Mac ter sido reiniciado, e todos os dados/arquivos estar&atilde;o aonde estavam (ao menos comigo foi assim). Como o Lion foi reinstalado, ser&aacute; logo de caro solicitado a atualiza&ccedil;&atilde;o do Java.</p>
<p>&nbsp;</p>
</blockquote>
<p>Estou escrevendo este post do Mac ap&oacute;s ter reinstalado o Lion, ainda n&atilde;o verifiquei se houve algum efeito colateral.</p>
<blockquote>
<p>Caso voc&ecirc; utilize Python/Ruby, melhore verificar se o seu ambiente e atualiza&ccedil;&otilde;es est&atilde;o todas onde deveriam.</p>
</blockquote>
<p>&nbsp;</p>
<p>E de volta a codifica&ccedil;&atilde;o, aqui o/</p>
<p>&nbsp;</p>
<p>Acho que a cabe&ccedil;a de algu&eacute;m rolou na Apple hoje. Hehe</p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2009/02/25/preview-mac-os-x-snow-leopard/" class="wp_rp_title">Preview: Mac OS X Snow Leopard</a></li><li ><a href="http://blog.erkobridee.com/2009/10/26/pc-vs-mac-vs-linux-traduzindo-uma-imagem/" class="wp_rp_title">PC vs. Mac vs. Linux : traduzindo, uma imagem</a></li><li ><a href="http://blog.erkobridee.com/2010/10/24/adobe-air-package-assistant-pro/" class="wp_rp_title">[ Adobe AIR ] Package Assistant Pro</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/mplayerx-melhor-que-o-vlc-no-mac-os-x/" class="wp_rp_title">MPlayerX &#8211; melhor que o VLC no Mac OS X</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2708&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/06/12/mac-e-um-incrivel-kernel-panic-no-update-do-thunderbolt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>50% de chance para sim e para não, arrisque!</title>
		<link>http://blog.erkobridee.com/2012/04/09/50-de-chance-para-sim-e-para-nao-arrisque/</link>
		<comments>http://blog.erkobridee.com/2012/04/09/50-de-chance-para-sim-e-para-nao-arrisque/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 02:01:20 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Análise]]></category>
		<category><![CDATA[Chances]]></category>
		<category><![CDATA[Filosofia]]></category>
		<category><![CDATA[Pensamentos]]></category>
		<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[Profissional]]></category>
		<category><![CDATA[Vida]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2696</guid>
		<description><![CDATA[A vida &#233; simples, n&#243;s &#233; que a complicamos muito e sempre pensamos no pior cen&#225;rio&#8230; &#160; Situa&#231;&#227;o inicial quando temos uma nova id&#233;ia, sonho&#8230; Situa&#231;&#227;o posterior, pessimista, onde temos a ci&#234;ncia que existe 50% de chance de insucesso Situa&#231;&#227;o posterior, otimista, onde temos a ci&#234;ncia que existe 50% de chance de sucesso, e 50% [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>A vida &eacute; simples, n&oacute;s &eacute; que a complicamos muito e sempre pensamos no pior cen&aacute;rio&#8230;</p>
<p>&nbsp;</p>
<p>Situa&ccedil;&atilde;o inicial quando temos uma nova id&eacute;ia, sonho&#8230;</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.001.png"><img alt="" class="aligncenter size-full wp-image-2704" height="424" src="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.001.png" title="sonho.ideia.001" width="499" /></a></p>
<p>Situa&ccedil;&atilde;o posterior, pessimista, onde temos a ci&ecirc;ncia que existe 50% de chance de insucesso</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.002.png" rel="" style="" target="" title=""><img alt="" class="aligncenter size-full wp-image-2705" height="291" src="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.002.png" style="" title="sonho.ideia.002" width="503" /></a></p>
<p>Situa&ccedil;&atilde;o posterior, otimista, onde temos a ci&ecirc;ncia que existe 50% de chance de sucesso, e 50% n&atilde;o &eacute; 0%</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.003.png" rel="" style="" target="" title="Clique para amplicar"><div id="attachment_2706" class="wp-caption aligncenter" style="width: 351px"><img alt="Clique para amplicar" class="size-full wp-image-2706  wp-caption aligncenter wp-caption aligncenter" height="181" src="http://blog.erkobridee.com/wp-content/uploads/2012/04/sonho.ideia_.003.png" style="" title="sonho.ideia.003" width="341" /><p class="wp-caption-text">Clique para amplicar</p></div></a></p>
<blockquote>
<p>Lembrando, quando voc&ecirc; tem um sonho, uma id&eacute;ia, sempre suas chances ser&atilde;o 50% para sucesso e 50% para insucesso, por&eacute;m se os 50% do insucesso te assustar e te fizer desistir de tentar / arriscar o insucesso ser&aacute; 100%, em outras palavras, o insucesso voc&ecirc; j&aacute; tem, v&aacute; em frente, arrisque, tente, pois o sucesso, se vier, ser&aacute; sempre lucro, mas s&oacute; vir&aacute; caso voc&ecirc; tenha coragem suficiente para tentar e arriscar!</p>
</blockquote>
<p>&nbsp;</p>
<p>Eu mesmo, preciso aplicar esta perspectiva em todas as &aacute;reas da minha vida, nas que eu estou tento insucesso principalmente, e o motivo est&aacute; claro, eu nem ao menos arrisquei, ou tentei. &Eacute; hora de apostar!</p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2010/08/03/kiss_keep-it-stupid-simple/" class="wp_rp_title">[Filosofia] KISS &#8211; Keep it stupid simple</a></li><li ><a href="http://blog.erkobridee.com/2010/03/13/privacidade-e-a-internet/" class="wp_rp_title">Privacidade e a Internet</a></li><li ><a href="http://blog.erkobridee.com/2012/06/21/bill-gates-11-regras-da-vida-que-a-escola-nao-ensina/" class="wp_rp_title">Bill Gates &#8211; 11 regras da vida que a escola não ensina</a></li><li ><a href="http://blog.erkobridee.com/2009/02/24/video-motivacao-profissional/" class="wp_rp_title">Vídeo: motivação profissional</a></li><li ><a href="http://blog.erkobridee.com/2010/08/22/java-desktop-calculadora-lexica/" class="wp_rp_title">[ Java desktop ] Calculadora Léxica</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2696&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/04/09/50-de-chance-para-sim-e-para-nao-arrisque/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python : matemática : números primos</title>
		<link>http://blog.erkobridee.com/2012/02/27/python-matematica-numeros-primos/</link>
		<comments>http://blog.erkobridee.com/2012/02/27/python-matematica-numeros-primos/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 17:32:38 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Cálculo]]></category>
		<category><![CDATA[Matemática]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2694</guid>
		<description><![CDATA[Esses dias realizando alguns exerc&#237;cios matem&#225;ticos e algoritmos em python me deparei com um que me solicitou: Implementar uma fun&#231;&#227;o que retorne verdadeiro se o n&#250;mero for primo (falso caso contr&#225;rio). Testar de 1 a 100. Bom primeira coisa que fiz foi pensar em dividir esta atividade em 2 fun&#231;&#245;es, uma para realizar a intera&#231;&#227;o [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Esses dias realizando alguns exerc&iacute;cios matem&aacute;ticos e algoritmos em python me deparei com um que me solicitou:</p>
<blockquote>
<p>Implementar uma fun&ccedil;&atilde;o que retorne verdadeiro se o n&uacute;mero for primo (falso caso contr&aacute;rio). Testar de 1 a 100.</p>
</blockquote>
<p>Bom primeira coisa que fiz foi pensar em dividir esta atividade em 2 fun&ccedil;&otilde;es, uma para realizar a intera&ccedil;&atilde;o dos n&uacute;meros e dentro chamar outra fun&ccedil;&atilde;o para validar um respectivo n&uacute;mero solicitado, sendo o retorno dessa fun&ccedil;&atilde;o <strong>Verdadeiro</strong> (<em>&eacute; um n&uacute;mero primo</em>) ou <strong>Falso</strong> (<em>n&atilde;o &eacute; um n&uacute;mero primo</em>)</p>
<p>Sabendo que os n&uacute;meros primos possuem a regra que os definem:</p>
<blockquote>
<p>Um n&uacute;mero primo &eacute; aquele que &eacute; divis&iacute;vel por apenas 2 n&uacute;meros, 1 e por ele mesmo. Sabe-se tamb&eacute;m que o n&uacute;mero 1, n&atilde;o &eacute; primo pois possui apenas um &uacute;nico divisor. O &uacute;nico n&uacute;mero par que &eacute; primo &eacute; o n&uacute;mero 2.</p>
</blockquote>
<p>Tendo em mente o conhecimento geral sobre os n&uacute;meros primos, implementei 2 vers&otilde;es de valida&ccedil;&atilde;o de n&uacute;mero primo, a primeira vers&atilde;o uma varredura, dentro do universo dos n&uacute;meros &iacute;mpares (<em><strong>verificaNumeroPrimoV1</strong></em>), inicialmente sem nenhuma otimiza&ccedil;&atilde;o, por&eacute;m ap&oacute;s algumas leituras evolu&iacute; at&eacute; a situa&ccedil;&atilde;o que ser&aacute; apresentada a seguir. Tamb&eacute;m implementei uma segunda vers&atilde;o de valida&ccedil;&atilde;o dos n&uacute;meros primos dentro do universo de n&uacute;meros &iacute;mpares (<em><strong>verificaNumeroPrimoV2</strong></em>), onde neste realizado uma valida&ccedil;&atilde;o verificando se o resto da divis&atilde;o &eacute; zero e o divisor &eacute; diferente do n&uacute;mero a ser validado, o que define que o n&uacute;mero n&atilde;o &eacute; primo, e uma segunda checagem que valida se o&nbsp;<em>Q</em><em>uociente</em>&nbsp;da divis&atilde;o &eacute; menou ou igual ao divisor, o que define que este n&uacute;mero &eacute; um n&uacute;mero primo.</p>
<blockquote>
<p>Como comentei, ap&oacute;s algumas leituras realizei umas otimiza&ccedil;&otilde;es, dentre elas:</p>
<p style="margin-left: 40px; ">- delimitei a valida&ccedil;&atilde;o at&eacute; a ra&iacute;z quadrada do n&uacute;mero a ser validado</p>
<p style="margin-left: 40px; ">- verifica&ccedil;&atilde;o se o n&uacute;mero possu&iacute; ra&iacute;z quadrada, o que define que n&atilde;o &eacute; um n&uacute;mero primo</p>
<p style="margin-left: 40px; ">- valida&ccedil;&atilde;o se o quociente da divis&atilde;o do pr&oacute;ximo n&uacute;mero &iacute;mpar ap&oacute;s a ra&iacute;z quadrada do n&uacute;mero &eacute; inferior ou igual ao divisor, o que define que o n&uacute;mero validado &eacute; primo.</p>
</blockquote>
<p>Com essas otimiza&ccedil;&otilde;es obtive o respectivo algoritmo:</p>
<p><script src="https://gist.github.com/1925632.js?file=numeroPrimos.py"></script></p>
<p>&nbsp;</p>
<p><a href="https://gist.github.com/raw/1925632/7b2d426ce19affae145a9290465960b733d6d120/numeroPrimos.py">Link do arquivo raw</a>, no final do arquivo, tem um array com os n&uacute;meros primos encontrados de 1 a 100000</p>
<p>&nbsp;</p>
<p><strong>Links de refer&ecirc;ncia:&nbsp;</strong></p>
<p>- <a href="http://cmaisfacil.blogspot.com/2009/11/um-passo-de-cada-vez-algoritmos-numeros.html">Algoritmo em C</a></p>
<p>- <a href="http://www.matematicadidatica.com.br/NumerosPrimos.aspx">Como identificar se um n&uacute;mero &eacute; primo ou n&atilde;o?</a> (verifica&ccedil;&atilde;o do quociente da divis&atilde;o)&nbsp;</p>
<p>- <a href="http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes">Crivo de Erat&oacute;stenes</a></p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/01/31/python-aumento-e-reducao-percentual/" class="wp_rp_title">Python : aumento e redução percentual</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-regra-de-3-composta/" class="wp_rp_title">Python : matemática : regra de 3 composta</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-elementar-equacao-1-grau/" class="wp_rp_title">Python : matemática : elementar (equação 1 grau)</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-fibonacci/" class="wp_rp_title">Python : matemática : Fibonacci</a></li><li ><a href="http://blog.erkobridee.com/2012/02/01/python-matematica-fatorial-com-limite-e-combinacao/" class="wp_rp_title">Python : matemática Fatorial com limite e Combinação</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2694&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/02/27/python-matematica-numeros-primos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tribler : um sistema BitTorrent descentralizado</title>
		<link>http://blog.erkobridee.com/2012/02/14/tribler-um-sistema-bittorrent-descentralizado/</link>
		<comments>http://blog.erkobridee.com/2012/02/14/tribler-um-sistema-bittorrent-descentralizado/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 13:24:30 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Arquivos]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[Compartilhamento]]></category>
		<category><![CDATA[Torrent]]></category>
		<category><![CDATA[Trible]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2690</guid>
		<description><![CDATA[Ano 2012, este ano iniciou com um verdadeiro pandemoniun na internet, onde diversos sites de compartilhamento de arquivos sairam do ar, no combate contra a pirataria, em uma das frentes, SOPA, PIPA e ACTA. Tanto SOPA, quanto a PIPA foram arquivadas nos EUA, por&#233;m a pior de todas a ACTA vem ganhando terreno&#8230; Em nome [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Ano 2012, este ano iniciou com um verdadeiro pandemoniun na internet, onde diversos sites de compartilhamento de arquivos sairam do ar, no combate contra a pirataria, em uma das frentes, SOPA, PIPA e ACTA. Tanto SOPA, quanto a PIPA foram arquivadas nos EUA, por&eacute;m a pior de todas a ACTA vem ganhando terreno&#8230;</p>
<p>Em nome da defesa dos direitos autor&aacute;is (em defesa da ditadura e monop&oacute;lio) a ACTA fez um estrago, com muitas perdas para quem compartilha arquivos.</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/02/Tribler_logo.png" rel="" style="" target="" title=""><img alt="" class="aligncenter size-full wp-image-2691" height="200" src="http://blog.erkobridee.com/wp-content/uploads/2012/02/Tribler_logo.png" style="" title="Tribler_logo" width="150" /></a></p>
<p style="text-align: center; "><a href="https://www.tribler.org/">Site: Tribler</a></p>
<p>Por&eacute;m como n&atilde;o era de esperar muito, eis que surge algo para contornar este problema. Apesar de estar ganhando destade nos &uacute;ltimos dias o Trible, um sistema de BitTorrent descentralizado, j&aacute; vem sendo desenvolvido a mais de 5 anos.</p>
<p>&nbsp;</p>
<p>O grande lance, a jogada de mestre desse sistema proposto e implementado pelo Trible &eacute;, n&atilde;o existe um site, um sistema centralizado onde est&atilde;o os .torrent , por&eacute;m os torrents s&atilde;o compartilhados entre os pr&oacute;prios usu&aacute;rios do Tribler. O que em tese, garante que para tirar este sistema do ar, ser&aacute; necess&aacute;rio &quot;desligar a internet&quot;.</p>
<p>Caso queira saber mais sobre o sistema e o funcionamento do Tribler, voc&ecirc; pode ler este artigo sobre <a href="http://iptps06.cs.ucsb.edu/papers/Pouw-Tribler06.pdf">[PDF]</a>.</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/02/tribler_app.jpg"><img alt="" class="aligncenter size-full wp-image-2692" height="309" src="http://blog.erkobridee.com/wp-content/uploads/2012/02/tribler_app.jpg" title="tribler_app" width="520" /></a></p>
<p>Alguns posts interessantes pela internet sobre o assunto:</p>
<p>-&nbsp;<a href="http://torrentfreak.com/tribler-makes-bittorrent-impossible-to-shut-down-120208/">Tribler Makes BitTorrent Impossible to Shut Down</a></p>
<p>-&nbsp;<a href="http://it-diary.com/internet/tribler-makes-filesharing-immortal-and-impossible-to-block/">Tribler makes FileSharing Immortal and Impossible to Block</a></p>
<p>- <a href="http://en.wikipedia.org/wiki/Tribler">Wikipedia : Tribler</a></p>
<p>-&nbsp;<a href="http://www.techtudo.com.br/noticias/noticia/2012/02/sistema-de-compartilhamento-de-conteudo-se-diz-imune-ataques-do-governo.html">Sistema de compartilhamento de conte&uacute;do se diz imune a ataques do governo</a></p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2010/03/28/adobe-flex-3-5-uploaddownloadblazeds/" class="wp_rp_title">Adobe Flex 3.5 : UploadDownloadBlazeDS</a></li><li ><a href="http://blog.erkobridee.com/2012/01/23/sopa-pipa-censura-e-o-inicio-da-primeira-guerra-cibernetica/" class="wp_rp_title">SOPA, PIPA, censura e o início da primeira guerra cibernética</a></li><li ><a href="http://blog.erkobridee.com/2010/03/13/privacidade-e-a-internet/" class="wp_rp_title">Privacidade e a Internet</a></li><li ><a href="http://blog.erkobridee.com/2010/08/03/kiss_keep-it-stupid-simple/" class="wp_rp_title">[Filosofia] KISS &#8211; Keep it stupid simple</a></li><li ><a href="http://blog.erkobridee.com/2009/11/18/luta-pela-internet-livre-avanca/" class="wp_rp_title">Luta pela Internet Livre avança</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2690&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/02/14/tribler-um-sistema-bittorrent-descentralizado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python : matemática : Fibonacci</title>
		<link>http://blog.erkobridee.com/2012/02/03/python-matematica-fibonacci/</link>
		<comments>http://blog.erkobridee.com/2012/02/03/python-matematica-fibonacci/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 13:22:04 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Fibonacci]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[rankk]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2688</guid>
		<description><![CDATA[Em uma outra quest&#227;o do site rankk.org foi apresentado a sequinte quest&#227;o, solicitando para encontrar um respectivo valor em uma posi&#231;&#227;o dada uma sequ&#234;ncia: 1,1,2,3,5,8,13,21,34,55,89 &#8230; Qual &#233; o 119 termo? Observando a sequ&#234;ncia, temos uma sequ&#234;ncia de fibonacci (wikipedia), ent&#227;o sabendo isso, partindo do algoritmo de c&#225;lculo de fibonacci, bastou alterar o algoritmo para [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Em uma outra quest&atilde;o do site rankk.org foi apresentado a sequinte quest&atilde;o, solicitando para encontrar um respectivo valor em uma posi&ccedil;&atilde;o dada uma sequ&ecirc;ncia:</p>
<blockquote>
<div>1,1,2,3,5,8,13,21,34,55,89 &#8230;</div>
<div>Qual &eacute; o 119 termo?</div>
</blockquote>
<p>Observando a sequ&ecirc;ncia, temos uma sequ&ecirc;ncia de fibonacci (<a href="http://pt.wikipedia.org/wiki/N%C3%BAmero_de_Fibonacci">wikipedia</a>), ent&atilde;o sabendo isso, partindo do algoritmo de c&aacute;lculo de fibonacci, bastou alterar o algoritmo para realizar o c&aacute;lculo at&eacute; a respectiva posi&ccedil;&atilde;o.</p>
<p><script src="https://gist.github.com/1730145.js?file=nthTerm.py"></script></p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-soma-binaria/" class="wp_rp_title">Python : matemática : soma binária</a></li><li ><a href="http://blog.erkobridee.com/2012/02/01/python-matematica-fatorial-com-limite-e-combinacao/" class="wp_rp_title">Python : matemática Fatorial com limite e Combinação</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-regra-de-3-composta/" class="wp_rp_title">Python : matemática : regra de 3 composta</a></li><li ><a href="http://blog.erkobridee.com/2012/02/03/python-matematica-elementar-equacao-1-grau/" class="wp_rp_title">Python : matemática : elementar (equação 1 grau)</a></li><li ><a href="http://blog.erkobridee.com/2012/02/27/python-matematica-numeros-primos/" class="wp_rp_title">Python : matemática : números primos</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2688&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/02/03/python-matematica-fibonacci/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
