<!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" lang="en-US">
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" lang="en-US">
<![endif]-->
<!--[if !(IE 7) & !(IE 8)]><!-->
<html lang="en-US">
<!--<![endif]-->
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<title>Thiago Hiromi | {&quot;type&quot;: &quot;Blog&quot;, &quot;root&quot;: &quot;thiromi&quot;}</title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="pingback" href="http://blog.thiromi.com/xmlrpc.php" />
<!--[if lt IE 9]>
<script src="http://blog.thiromi.com/wp-content/themes/twentytwelve/js/html5.js" type="text/javascript"></script>
<![endif]-->
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="Thiago Hiromi &raquo; Feed" href="http://blog.thiromi.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Thiago Hiromi &raquo; Comments Feed" href="http://blog.thiromi.com/comments/feed/" />
		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/blog.thiromi.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8.2"}};
			!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,56826,8203,55356,56819),0,0),c=j.toDataURL(),b!==c&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55358,56794,8205,9794,65039),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55358,56794,8203,9794,65039),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
<link rel='stylesheet' id='twentytwelve-fonts-css'  href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700&#038;subset=latin,latin-ext' type='text/css' media='all' />
<link rel='stylesheet' id='twentytwelve-style-css'  href='http://blog.thiromi.com/wp-content/themes/twentytwelve/style.css?ver=4.8.2' type='text/css' media='all' />
<!--[if lt IE 9]>
<link rel='stylesheet' id='twentytwelve-ie-css'  href='http://blog.thiromi.com/wp-content/themes/twentytwelve/css/ie.css?ver=20121010' type='text/css' media='all' />
<![endif]-->
<script type='text/javascript' src='http://blog.thiromi.com/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
<script type='text/javascript' src='http://blog.thiromi.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
<link rel='https://api.w.org/' href='http://blog.thiromi.com/wp-json/' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.thiromi.com/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://blog.thiromi.com/wp-includes/wlwmanifest.xml" /> 
<meta name="generator" content="WordPress 4.8.2" />
	<style type="text/css" id="twentytwelve-header-css">
			.site-header h1 a,
		.site-header h2 {
			color: #444;
		}
		</style>
	</head>

<body class="home blog custom-font-enabled single-author">
<div id="page" class="hfeed site">
	<header id="masthead" class="site-header" role="banner">
		<hgroup>
			<h1 class="site-title"><a href="http://blog.thiromi.com/" title="Thiago Hiromi" rel="home">Thiago Hiromi</a></h1>
			<h2 class="site-description">{&quot;type&quot;: &quot;Blog&quot;, &quot;root&quot;: &quot;thiromi&quot;}</h2>
		</hgroup>

		<nav id="site-navigation" class="main-navigation" role="navigation">
			<button class="menu-toggle">Menu</button>
			<a class="assistive-text" href="#content" title="Skip to content">Skip to content</a>
			<div class="nav-menu"><ul>
<li class="current_page_item"><a href="http://blog.thiromi.com/">Home</a></li><li class="page_item page-item-6"><a href="http://blog.thiromi.com/sobre/">Sobre</a></li>
</ul></div>
		</nav><!-- #site-navigation -->

			</header><!-- #masthead -->

	<div id="main" class="wrapper">
	<div id="primary" class="site-content">
		<div id="content" role="main">
		
										
	<article id="post-89" class="post-89 post type-post status-publish format-standard hentry category-desenvolvimento category-php tag-framework tag-full-stack-framework tag-php-2 tag-yii">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/yii-framework/" rel="bookmark">Yii Framework</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/yii-framework/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p><img class="alignleft size-full wp-image-94" style="border: 0px;" title="Logo Yii" src="http://blog-thiromi.rhcloud.com/wp-content/uploads/2012/09/logo-yii.png" alt="logo yii" width="284" height="64" /></p>
<p><strong>Update (11/09/2012): </strong>Não tenho trabalhado mais com o Yii desde que mudei de emprego. Mas continuo acreditando que o Yii é um dos melhores <em>full stack frameworks</em> disponíveis.</p>
<p>Desde Março/2011 venho trabalhando com o <a title="Yii Framework" href="http://www.yiiframework.com/">Yii Framework</a> nos projetos que tenho desenvolvido no trabalho e nos meus &#8220;freelas&#8221;.</p>
<p>O Yii é um framework <abbr title="Model View Controller">MVC</abbr> leve, &#8220;seguro&#8221; e bem programado a meu ver. Seu criador é o famigerado Qiang Xue, que foi um dos principais desenvolvedores do <a title="PRADO" href="http://www.pradosoft.com/">PRADO framework</a>. Projeto este que serviu de base para o Yii depois do Qiang ter deixado o desenvolvimento do PRADO.</p>
<p>Elenco aqui alguns argumentos do porquê acho o Yii um framework completo:</p>
<ul>
<li>Layouts hierárquicos</li>
<li>Relacionamentos entre <em>models</em> (HAS_ONE, HAS_MANY, MANY_MANY)</li>
<li><em>Lazy loading</em> de relacionamentos, componentes, propriedades, praticamente tudo.</li>
<li>Possui um ótimo <abbr title="Object-Relational Mapping">ORM</abbr></li>
<li>Migração de banco de dados</li>
<li>Validadores de formulários e <em>models</em></li>
<li>Testes (Unitários, Funcionasis) com <em>fixtures</em></li>
<li>Gerador de código (yiic shell &#8211; em desuso &#8211; e gii)</li>
<li>Suporte nativo a cache (de arquivo, memcached, apc)</li>
<li>Widgets extremamente úteis (CGridView, CMaskedTextField) utilizando o jQuery como biblioteca JavaScript</li>
<li>Totalmente modularizado</li>
<li>Extremamente Flexível</li>
</ul>
<p>Em resumo, um framework completo para todos os tamanhos de projeto.</p>
<p>Essa é a minha opinião sobre o framework. E você, o que acha do Yii? Tem algum framework PHP de sua preferência que atenda a todas as suas necessidades?</p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/category/desenvolvimento/php/" rel="category tag">PHP</a> and tagged <a href="http://blog.thiromi.com/tag/framework/" rel="tag">framework</a>, <a href="http://blog.thiromi.com/tag/full-stack-framework/" rel="tag">full stack framework</a>, <a href="http://blog.thiromi.com/tag/php-2/" rel="tag">php</a>, <a href="http://blog.thiromi.com/tag/yii/" rel="tag">yii</a> on <a href="http://blog.thiromi.com/yii-framework/" title="01:12" rel="bookmark"><time class="entry-date" datetime="2012-08-31T01:12:23+00:00">31/08/2012</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-77" class="post-77 post type-post status-publish format-standard hentry category-desenvolvimento tag-buildbot tag-desenvolvimento tag-meme tag-python">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/meu-ambiente-de-trabalho-em-7-itens/" rel="bookmark">Meu ambiente de trabalho em 7 itens</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/meu-ambiente-de-trabalho-em-7-itens/#comments">6 Replies</a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<div style="width: 510px" class="wp-caption alignright"><img title="Ambiente de trabalho" src="http://farm2.static.flickr.com/1357/592229720_ff01d3aea2.jpg" alt="Ambiente de trabalho" width="500" height="333" /><p class="wp-caption-text">Um ambiente de trabalho desses é um sonho</p></div>
<p>O <a href="https://twitter.com/andrewsmedina">@andrewsmedina</a> me convocou a enumerar 7 itens do meu ambiente de trabalho. Atualmente trabalho com <acronym title="Python + Zope + Plone">PZP</acronym> e <em>sites</em>/sistemas com o <em>framework</em> Django. Apesar dos meus conhecimentos anteriores de linguagem de programação, tenho usado apenas o Python e o JavaScript das linguagens de programação conhecidas. Compartilho com vocês os 7 que eu creio que são os principais no meu ambiente de trabalho. <a href="http://blog.thiromi.com/meu-ambiente-de-trabalho-em-7-itens/#more-77" class="more-link">Continue reading <span class="meta-nav">&rarr;</span></a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a> and tagged <a href="http://blog.thiromi.com/tag/buildbot/" rel="tag">buildbot</a>, <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/meme/" rel="tag">meme</a>, <a href="http://blog.thiromi.com/tag/python/" rel="tag">python</a> on <a href="http://blog.thiromi.com/meu-ambiente-de-trabalho-em-7-itens/" title="02:01" rel="bookmark"><time class="entry-date" datetime="2011-01-27T02:01:32+00:00">27/01/2011</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-52" class="post-52 post type-post status-publish format-standard hentry category-javascript tag-escopo tag-javascript-2 tag-this">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/mudando-o-this-de-uma-funcao-javascript/" rel="bookmark">Mudando o &#8216;this&#8217; de uma função Javascript</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/mudando-o-this-de-uma-funcao-javascript/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>O nosso querido Bruno Tikami (Membro da Python Brasil e desenvolvedor Django e Zope/Plone) atiçou minha curiosidade com relação a mudar o this de uma função/objeto/bla JavaScript.</p>
<p>Sua intenção era manter o <strong>this </strong>de um objeto <strong>Tool</strong> quando o evento jQuery .click() fosse disparado.<br />
 <a href="http://blog.thiromi.com/mudando-o-this-de-uma-funcao-javascript/#more-52" class="more-link">Continue reading <span class="meta-nav">&rarr;</span></a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/javascript/" rel="category tag">JavaScript</a> and tagged <a href="http://blog.thiromi.com/tag/escopo/" rel="tag">escopo</a>, <a href="http://blog.thiromi.com/tag/javascript-2/" rel="tag">javascript</a>, <a href="http://blog.thiromi.com/tag/this/" rel="tag">this</a> on <a href="http://blog.thiromi.com/mudando-o-this-de-uma-funcao-javascript/" title="00:48" rel="bookmark"><time class="entry-date" datetime="2010-09-01T00:48:05+00:00">01/09/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-38" class="post-38 post type-post status-publish format-standard hentry category-desenvolvimento tag-desenvolvimento tag-plone tag-python">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/plone-ordenacao-natural-de-forma-facil/" rel="bookmark">Plone: Ordenação natural de forma fácil</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/plone-ordenacao-natural-de-forma-facil/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>Para aqueles que quiserem ordenar uma lista com caracteres especiais (e.g. [‘a’, ‘b’, ‘c’, ‘d’, ‘Á’]) no plone há duas formas de fazer:<br />
 <a href="http://blog.thiromi.com/plone-ordenacao-natural-de-forma-facil/#more-38" class="more-link">Continue reading <span class="meta-nav">&rarr;</span></a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a> and tagged <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/plone/" rel="tag">plone</a>, <a href="http://blog.thiromi.com/tag/python/" rel="tag">python</a> on <a href="http://blog.thiromi.com/plone-ordenacao-natural-de-forma-facil/" title="22:50" rel="bookmark"><time class="entry-date" datetime="2010-05-30T22:50:48+00:00">30/05/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-35" class="post-35 post type-post status-publish format-standard hentry category-desenvolvimento tag-desenvolvimento tag-gcc tag-linux tag-osx tag-python">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/cc1-error-unrecognized-command-line-option-wno-long-double/" rel="bookmark">cc1: error: unrecognized command line option &#8220;-Wno-long-double&#8221;</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/cc1-error-unrecognized-command-line-option-wno-long-double/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>Estou começando no universo do <a title="Plone" href="http://plone.org/">Plone</a>. Estava eu feliz e contente ao ter criado meu <a title="Definir um ambiente virtual (virtualenv) no Linux" href="http://thiromi.com/blog/2010/03/22/definir-um-ambiente-virtual-virtualenv-no-linux/">ambiente virtual</a>, agora estava na etapa de instalar o ZopeSkel para desenvolvimento de Produtos para o nosso querido amigo Plone. Executei o seguinte código no shell:</p>
<pre>easy_install ZopeSkel</pre>
<p>Se a vida fosse assim fácil, eu estranharia. Me deparei com o seguinte erro:</p>
<pre>cc1: error: unrecognized command line option "-Wno-long-double"
lipo: can't figure out the architecture type of: /var/folders/Ih/Ih8i2vVNH0q4i9eZGA5tzE+++TI/-Tmp-//ccsOvHcb.out
error: Setup script exited with error: command 'gcc' failed with exit status 1</pre>
<p> <a href="http://blog.thiromi.com/cc1-error-unrecognized-command-line-option-wno-long-double/#more-35" class="more-link">Continue reading <span class="meta-nav">&rarr;</span></a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a> and tagged <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/gcc/" rel="tag">gcc</a>, <a href="http://blog.thiromi.com/tag/linux/" rel="tag">linux</a>, <a href="http://blog.thiromi.com/tag/osx/" rel="tag">osx</a>, <a href="http://blog.thiromi.com/tag/python/" rel="tag">python</a> on <a href="http://blog.thiromi.com/cc1-error-unrecognized-command-line-option-wno-long-double/" title="01:29" rel="bookmark"><time class="entry-date" datetime="2010-05-12T01:29:56+00:00">12/05/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-18" class="post-18 post type-post status-publish format-standard hentry category-financas-pessoais tag-excel tag-financas-pessoais tag-investimento tag-moneytrackin tag-ms-money">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/comprar-hoje-pagar-amanha-e-ainda-ter-um-rendimento/" rel="bookmark">Comprar hoje, pagar amanhã e ainda ter um rendimento</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/comprar-hoje-pagar-amanha-e-ainda-ter-um-rendimento/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>[update] Confesso que desde março/2010 não pratico mais esse método. Tive problemas com a migração da minha conta e desde então, estou fora do plano &#8211; mas isso não prova que não funcione! =p [/update]</p>
<p>Esse artigo está originalmente publicado aqui (<a href="http://www.moneytrackin.com/tip/plano-maluco-para-receber-rendimentos-com-seu-salario">original, de minha autoria também</a>)</p>
<p>Já digo que o artigo não é integralmente igual ao postado no moneytrackin, pois como tudo na vida, a gente sempre pode melhorar um pouco as coisas. =)<br />
 <a href="http://blog.thiromi.com/comprar-hoje-pagar-amanha-e-ainda-ter-um-rendimento/#more-18" class="more-link">Continue reading <span class="meta-nav">&rarr;</span></a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/financas-pessoais/" rel="category tag">finanças pessoais</a> and tagged <a href="http://blog.thiromi.com/tag/excel/" rel="tag">excel</a>, <a href="http://blog.thiromi.com/tag/financas-pessoais/" rel="tag">finanças pessoais</a>, <a href="http://blog.thiromi.com/tag/investimento/" rel="tag">investimento</a>, <a href="http://blog.thiromi.com/tag/moneytrackin/" rel="tag">moneytrackin</a>, <a href="http://blog.thiromi.com/tag/ms-money/" rel="tag">ms money</a> on <a href="http://blog.thiromi.com/comprar-hoje-pagar-amanha-e-ainda-ter-um-rendimento/" title="21:00" rel="bookmark"><time class="entry-date" datetime="2010-04-25T21:00:20+00:00">25/04/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-30" class="post-30 post type-post status-publish format-standard hentry category-desenvolvimento tag-controle-de-versao tag-desenvolvimento tag-organizacao tag-subversion tag-svn">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/screencast-organizacao-de-diretorios-no-svn/" rel="bookmark">[Screencast] Organização de diretórios no SVN</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/screencast-organizacao-de-diretorios-no-svn/#comments">2 Replies</a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>Ah, o <a title="Subversion" href="http://en.wikipedia.org/wiki/Subversion_(software)">SVN</a>. Desde que o conheci, não trabalho mais sem ele! Porém, onde trabalho nem todos &#8211; quase ninguém &#8211; usam o SVN de forma correta. Todos alteram o trunk, ninguém faz branches nem tags, o que torna a organização e a maturidade o código desenvolvido eternamente em <em>beta</em>.</p>
<p>Quem sabe se, vendo esse screencast da KingHost &#8211; que disponibiliza o SVN em seus planos de hospedagem &#8211; as pessoas não aprendam a utilizar efetivamente esse recurso fantástico que é o <a title="Sistema de controle de versão" href="http://pt.wikipedia.org/wiki/Sistema_de_controle_de_versão">controle de versão</a>.</p>
<p>Só ignorem a parte da criação do repositório que é exclusivo do serviço de hospedagem.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/DvxZxS2Kogw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/DvxZxS2Kogw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>#ficadica</p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a> and tagged <a href="http://blog.thiromi.com/tag/controle-de-versao/" rel="tag">controle de versão</a>, <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/organizacao/" rel="tag">organização</a>, <a href="http://blog.thiromi.com/tag/subversion/" rel="tag">subversion</a>, <a href="http://blog.thiromi.com/tag/svn/" rel="tag">svn</a> on <a href="http://blog.thiromi.com/screencast-organizacao-de-diretorios-no-svn/" title="16:55" rel="bookmark"><time class="entry-date" datetime="2010-04-21T16:55:24+00:00">21/04/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-20" class="post-20 post type-post status-publish format-standard hentry category-desenvolvimento tag-c tag-cursos tag-desenvolvimento tag-linux">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/curso-gratuito-de-c-ufmg/" rel="bookmark">Curso gratuito de C [UFMG]</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/curso-gratuito-de-c-ufmg/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p>Para quem não tem recurso pra pagar um curso ou mesmo quem mora em um lugar que não tenham boas escolas de tecnologia e quer aprender C (que, a meu ver, é das mais fantásticas linguagens de programação e que deveria ser ensinada em todos os cursos relacionados a desenvolvimento de <em>software</em>), A Universidade Federal de Minas Gerais disponibiliza, desde 1997, o seu curso de linguagem C. O curso te incentiva a utilizar alguma distro Linux (os exemplos de código, como compilar, entre outros estão em shell *nix), mas não é obrigatório. Ele é gratuito, e não te obriga a fazer cadastro. O que te poupa de ficar disponibilizando seus dados &#8220;pra geral&#8221;.</p>
<p><a href="http://www.coltec.ufmg.br/~info/cursoC_olinux/curso_c_htm.htm">Curso</a></p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a> and tagged <a href="http://blog.thiromi.com/tag/c/" rel="tag">c</a>, <a href="http://blog.thiromi.com/tag/cursos/" rel="tag">cursos</a>, <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/linux/" rel="tag">linux</a> on <a href="http://blog.thiromi.com/curso-gratuito-de-c-ufmg/" title="16:00" rel="bookmark"><time class="entry-date" datetime="2010-04-21T16:00:41+00:00">21/04/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-25" class="post-25 post type-post status-publish format-standard hentry category-auto-ajuda tag-auto-ajuda">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/100-dicas-de-como-ter-uma-vida-melhor/" rel="bookmark">100 dicas de como ter uma vida melhor</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/100-dicas-de-como-ter-uma-vida-melhor/#respond"><span class="leave-reply">Leave a reply</span></a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<p><a title="100 Ways To Live A Better Life" href="http://www.dragosroua.com/100-ways-to-live-a-better-life/">Post interessantíssimo</a> de Dragos Roua, um romeno (um cara que nasceu na Romênia) que nos dá 100 dicas de como ter uma vida melhor. Obviamente, não é porque você não seguiu todas (ou nenhuma delas) que você não pode se considerar feliz. Mas quem sabe seguindo alguns desses conselhos não nos faça sentir completos?</p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/auto-ajuda/" rel="category tag">auto-ajuda</a> and tagged <a href="http://blog.thiromi.com/tag/auto-ajuda/" rel="tag">auto-ajuda</a> on <a href="http://blog.thiromi.com/100-dicas-de-como-ter-uma-vida-melhor/" title="12:00" rel="bookmark"><time class="entry-date" datetime="2010-04-20T12:00:04+00:00">20/04/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
							
	<article id="post-12" class="post-12 post type-post status-publish format-standard hentry category-desenvolvimento category-python tag-desenvolvimento tag-linux tag-python tag-virtualenv">
				<header class="entry-header">
			
						<h1 class="entry-title">
				<a href="http://blog.thiromi.com/definir-um-ambiente-virtual-virtualenv-no-linux/" rel="bookmark">Definir um ambiente virtual (virtualenv) no Linux</a>
			</h1>
										<div class="comments-link">
					<a href="http://blog.thiromi.com/definir-um-ambiente-virtual-virtualenv-no-linux/#comments">2 Replies</a>				</div><!-- .comments-link -->
					</header><!-- .entry-header -->

				<div class="entry-content">
			<div style="width: 241px" class="wp-caption alignright"><img title="Olha que organizado!!" src="http://grok.zope.org/documentation/how-to/using-virtualenv-for-a-clean-grok-installation/vgrok.png" alt="Olha que organizado!!" width="231" height="175" /><p class="wp-caption-text">Olha que organizado!!</p></div>
<p>Este post é inspirado no <a title="Setting development environment in Ubuntu ( django, mod_wsgi, apache2, virtualenv)" href="http://vinodpandey.com/setting-development-environment-in-ubuntu-django-mod_wsgi-apache2-virtualenv/">post</a> do blog do Vinod Pandey. É quase uma tradução do que este escreveu. Para aqueles que tem uma bruta preguiça de ler posts em inglês, aí está a ajuda.  Um passo muito importante para quem está começando a desenvolver em Python &#8212; como eu &#8212; é criar <a title="Site do Google Code para maiores informações sobre ambientes virtuais" href="http://code.google.com/p/modwsgi/wiki/VirtualEnvironments">ambientes virtuais</a> para que as bibliotecas instaladas não interfiram nas bibliotecas do sistema.</p>
<h2>Como faz?</h2>
<p>Primeiro, faça o download do virtualenv no repositório Pypi e descompacte o arquivo</p>
<pre>cd $HOME
mkdir downloads
cd downloads
wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.3.3.tar.gz
tar xzf virtualenv-1.3.3.tar.gz</pre>
<p>Crie o ambiente virtual</p>
<pre>cd $HOME
mkdir webapps
cd webapps
python2.4 ~/downloads/virtualenv-1.3.3/virtualenv.py --no-site-packages pythonapp</pre>
<p>Diferente do post do <a title="Ambiente Isolado para Python com virtualenv" href="http://pythonologia.org/2008/03/03/ambiente-isolado-para-python-com-virtualenv/">Pythonologia</a> &#8212; recomendo dar uma olhada lá, ele explica muito bem o processo de criação de arquivos do seu ambiente &#8211;, nós definimos logo no começo qual versão de python que o ambiente virtual usará &#8212; algo que achei mais fácil que criar um link simbólico.</p>
<h2>Só isso?</h2>
<p>Pois é, meu caro. Qualquer zé roela faria melhor. 🙂</p>
					</div><!-- .entry-content -->
		
		<footer class="entry-meta">
			This entry was posted in <a href="http://blog.thiromi.com/category/desenvolvimento/" rel="category tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/category/desenvolvimento/python/" rel="category tag">python</a> and tagged <a href="http://blog.thiromi.com/tag/desenvolvimento/" rel="tag">Desenvolvimento</a>, <a href="http://blog.thiromi.com/tag/linux/" rel="tag">linux</a>, <a href="http://blog.thiromi.com/tag/python/" rel="tag">python</a>, <a href="http://blog.thiromi.com/tag/virtualenv/" rel="tag">virtualenv</a> on <a href="http://blog.thiromi.com/definir-um-ambiente-virtual-virtualenv-no-linux/" title="22:44" rel="bookmark"><time class="entry-date" datetime="2010-03-22T22:44:04+00:00">22/03/2010</time></a><span class="by-author"> by <span class="author vcard"><a class="url fn n" href="http://blog.thiromi.com/author/admin/" title="View all posts by admin" rel="author">admin</a></span></span>.								</footer><!-- .entry-meta -->
	</article><!-- #post -->
			
					<nav id="nav-below" class="navigation" role="navigation">
			<h3 class="assistive-text">Post navigation</h3>
			<div class="nav-previous"><a href="http://blog.thiromi.com/page/2/" ><span class="meta-nav">&larr;</span> Older posts</a></div>
			<div class="nav-next"></div>
		</nav><!-- .navigation -->
	
		
		</div><!-- #content -->
	</div><!-- #primary -->


			<div id="secondary" class="widget-area" role="complementary">
			<aside id="search-2" class="widget widget_search"><form role="search" method="get" id="searchform" class="searchform" action="http://blog.thiromi.com/">
				<div>
					<label class="screen-reader-text" for="s">Search for:</label>
					<input type="text" value="" name="s" id="s" />
					<input type="submit" id="searchsubmit" value="Search" />
				</div>
			</form></aside>		<aside id="recent-posts-2" class="widget widget_recent_entries">		<h3 class="widget-title">Recent Posts</h3>		<ul>
					<li>
				<a href="http://blog.thiromi.com/yii-framework/">Yii Framework</a>
						</li>
					<li>
				<a href="http://blog.thiromi.com/meu-ambiente-de-trabalho-em-7-itens/">Meu ambiente de trabalho em 7 itens</a>
						</li>
					<li>
				<a href="http://blog.thiromi.com/mudando-o-this-de-uma-funcao-javascript/">Mudando o &#8216;this&#8217; de uma função Javascript</a>
						</li>
					<li>
				<a href="http://blog.thiromi.com/plone-ordenacao-natural-de-forma-facil/">Plone: Ordenação natural de forma fácil</a>
						</li>
					<li>
				<a href="http://blog.thiromi.com/cc1-error-unrecognized-command-line-option-wno-long-double/">cc1: error: unrecognized command line option &#8220;-Wno-long-double&#8221;</a>
						</li>
				</ul>
		</aside>		<aside id="archives-2" class="widget widget_archive"><h3 class="widget-title">Archives</h3>		<ul>
			<li><a href='http://blog.thiromi.com/2012/08/'>August 2012</a></li>
	<li><a href='http://blog.thiromi.com/2011/01/'>January 2011</a></li>
	<li><a href='http://blog.thiromi.com/2010/09/'>September 2010</a></li>
	<li><a href='http://blog.thiromi.com/2010/05/'>May 2010</a></li>
	<li><a href='http://blog.thiromi.com/2010/04/'>April 2010</a></li>
	<li><a href='http://blog.thiromi.com/2010/03/'>March 2010</a></li>
	<li><a href='http://blog.thiromi.com/2009/11/'>November 2009</a></li>
		</ul>
		</aside><aside id="categories-2" class="widget widget_categories"><h3 class="widget-title">Categories</h3>		<ul>
	<li class="cat-item cat-item-2"><a href="http://blog.thiromi.com/category/auto-ajuda/" >auto-ajuda</a>
</li>
	<li class="cat-item cat-item-3"><a href="http://blog.thiromi.com/category/desenvolvimento/" >Desenvolvimento</a>
</li>
	<li class="cat-item cat-item-4"><a href="http://blog.thiromi.com/category/financas-pessoais/" >finanças pessoais</a>
</li>
	<li class="cat-item cat-item-5"><a href="http://blog.thiromi.com/category/inicio/" >início</a>
</li>
	<li class="cat-item cat-item-6"><a href="http://blog.thiromi.com/category/desenvolvimento/javascript/" >JavaScript</a>
</li>
	<li class="cat-item cat-item-7"><a href="http://blog.thiromi.com/category/desenvolvimento/php/" >PHP</a>
</li>
	<li class="cat-item cat-item-8"><a href="http://blog.thiromi.com/category/desenvolvimento/python/" >python</a>
</li>
		</ul>
</aside><aside id="meta-2" class="widget widget_meta"><h3 class="widget-title">Meta</h3>			<ul>
						<li><a href="https://blog.thiromi.com/wp-login.php">Log in</a></li>
			<li><a href="http://blog.thiromi.com/feed/">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
			<li><a href="http://blog.thiromi.com/comments/feed/">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
			<li><a href="https://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li>			</ul>
			</aside>		</div><!-- #secondary -->
		</div><!-- #main .wrapper -->
	<footer id="colophon" role="contentinfo">
		<div class="site-info">
						<a href="https://wordpress.org/" title="Semantic Personal Publishing Platform">Proudly powered by WordPress</a>
		</div><!-- .site-info -->
	</footer><!-- #colophon -->
</div><!-- #page -->

<script type='text/javascript' src='http://blog.thiromi.com/wp-content/themes/twentytwelve/js/navigation.js?ver=20140711'></script>
<script type='text/javascript' src='http://blog.thiromi.com/wp-includes/js/wp-embed.min.js?ver=4.8.2'></script>
</body>
</html>