<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ubuntu 4 Free</title>
	<atom:link href="http://ubuntu4free.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ubuntu4free.wordpress.com</link>
	<description>Ubuntu World - Dicas e Artigos</description>
	<lastBuildDate>Fri, 22 Apr 2011 03:28:11 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ubuntu4free.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/cac93bb450878acb5b966b5dbebeab6f?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ubuntu 4 Free</title>
		<link>http://ubuntu4free.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ubuntu4free.wordpress.com/osd.xml" title="Ubuntu 4 Free" />
	<atom:link rel='hub' href='http://ubuntu4free.wordpress.com/?pushpress=hub'/>
		<item>
		<title>/run – Quem ainda não viu, vai ver!</title>
		<link>http://ubuntu4free.wordpress.com/2011/04/01/run-mudanca/</link>
		<comments>http://ubuntu4free.wordpress.com/2011/04/01/run-mudanca/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 13:27:43 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Ubuntu Dicas]]></category>
		<category><![CDATA[/run]]></category>
		<category><![CDATA[/var/run]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Diretórios]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Suse]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=119</guid>
		<description><![CDATA[Estava eu lendo meus feeds e me deparei com uma noticia muito interessante: Distribuições Linux – Inclusão do Diretório /run Bom, como sou LPIC (Linux Professional Institute Certificated), realmente tenho que estar atento a essas mudanças nas distribuições. E fui pesquisar na fonte da reportagem, pois estava muito pobre a explicação do site. E encontrei [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=119&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Estava eu lendo meus feeds e me deparei com uma noticia muito interessante:<img class="alignright" title="tux-duvida" src="http://marcio.whodesigner.com.br/wp-content/uploads/2008/09/introlinux.png" alt="" width="205" height="205" /></p>
<p style="text-align:justify;"><strong>Distribuições Linux – Inclusão do Diretório /run</strong></p>
<p style="text-align:justify;">Bom, como sou LPIC (Linux Professional Institute Certificated), realmente tenho que estar atento a essas mudanças nas distribuições. E fui pesquisar na fonte da reportagem, pois estava muito pobre a explicação do site. E encontrei um desenvolvedor do Fedora porject explicando os motivos de se ter este novo diretório. E vi que realmente é importante adicionar este post, pois quem quiser tirar certificação no futuro ou mesmo pretende atualizar alguma versão deve se preparar para mudanças na estrutura dos diretórios.<span id="more-119"></span></p>
<p style="text-align:justify;">Bom, para quem entende melhor da estrutura de pastas das distribuições Linux deve saber que grande parte dos dados de execução para o <em>early boot </em>é usado no diretório /dev em vários diretórios ocultos. /dev/.udev é o primeiro, mas ao decorrer do <em>boot</em> do SO ele segue para vários outros. /dev/.mdadm, /dev/.systemmd, /dev/.mount e por aí vai. (Dependendo da distribuição pode haver muito mais diretórios) O principal motivo para se usar o /dev para a inicialização é que ele é conhecido como <span style="text-decoration:underline;">tmpfs </span>(<em>temporary file system</em>), ou seja, ele é o primeiro lugar a ser usado para o boot da máquina, “ativando” os drivers e <em>Filesystems. </em>Mas o /var/run é apenas inicializado bem depois. Mas sabendo disso, no /dev também são executados vários dados irrelevantes para o <em>boot</em>, mas são usados para execução de outras aplicações durante a utilização do sistema. Onde não faz sentido estar ali, pois faz parte de uma estrutura diferente de execução. No /dev estamos falados dos <em>devices</em> da máquina e não de dados de execução.</p>
<p style="text-align:justify;">Um termo usado pelo desenvolvedor do Fedora para expressar o uso do /dev para execução de aplicações foi à seguinte: “/dev sempre foi um lugar inapropriado e feio para dados de execução: dados de execução não são dispositivos então não faz sentido eles estarem lá”. Por essa aplicação erronia desses dados que foi feita a necessidade de se utilizar o /var/run. Lógico que ainda terá vários dados executados nos diretórios ocultos do /dev mas os não necessários para uso do boot serão aplicados no /var/run/xxx.</p>
<p style="text-align:justify;">Bom, reuniões já foram feitas entre pessoas chaves responsáveis  palas distribuições: Debian, Ubuntu, Suse e Fedora. E já temos a aplicação no Fedora 15 e nas outras distribuições logo estará aplicado. Para finalizar segue as vantagens:</p>
<p style="text-align:justify;">- Haverá apenas um <em>tmpfs</em>, suportado no /run, /var/run reduzindo um pouco a utilização do tmpfs padrão do SO.</p>
<p style="text-align:justify;">- Todos os dados de execução estarão localizados no mesmo local, e não haverá nenhum problema com diretórios ocultos, facilitando a vida do administrador do sistema.</p>
<p style="text-align:justify;">- Ficará melhor e mais organizada a estrutura do sistema não utilizando erroniamente o /dev para aplicações de execução.</p>
<p style="text-align:justify;">Em resumo isto irá facilitar a vida de administradores de sistema Linux, para usuários finais que apenas usam o sistema sem fazer muitas alterações isso não vai causar grandes mudanças. Para melhores explicações segue o link da explicação do desenvolvedor: <a href="http://goo.gl/xm1kr">http://goo.gl/xm1kr</a>. E aqui segue o link da chamada da noticia em português no site uder-linux: <a href="http://goo.gl/8jpz8">http://goo.gl/8jpz8</a>.</p>
<p style="text-align:justify;">&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=119&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2011/04/01/run-mudanca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://marcio.whodesigner.com.br/wp-content/uploads/2008/09/introlinux.png" medium="image">
			<media:title type="html">tux-duvida</media:title>
		</media:content>
	</item>
		<item>
		<title>Python &#8211; Threads x Process</title>
		<link>http://ubuntu4free.wordpress.com/2011/02/11/python-threads-x-process/</link>
		<comments>http://ubuntu4free.wordpress.com/2011/02/11/python-threads-x-process/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 01:56:37 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=109</guid>
		<description><![CDATA[Creio que muitos aqui devem já ter desenvolvido com Threads, e muito já devem ter pensado que Threads melhoram o desempenho de um software. Mas, gostaria de dizer que Threads não melhoram efetivamente o desempenho de um software. As Threads podem ajudar a controlar melhor seu software, mas caso você tenha um problema muito grande e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=109&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_113" class="wp-caption alignleft" style="width: 290px"><a href="http://ubuntu4free.files.wordpress.com/2011/02/280px-python_logo1.png"><img class="size-full wp-image-113" title="Multi Python" src="http://ubuntu4free.files.wordpress.com/2011/02/280px-python_logo1.png?w=600" alt=""   /></a><p class="wp-caption-text">Multi Python</p></div>
<p style="text-align:justify;">Creio que muitos aqui devem já ter desenvolvido com Threads, e muito já devem ter pensado que Threads melhoram o desempenho de um software. Mas, gostaria de dizer que Threads não melhoram efetivamente o desempenho de um software. As Threads podem ajudar a controlar melhor seu software, mas caso você tenha um problema muito grande e você quer dividir este problemas para resolve-lo paralelamente as Threads não vão ajudar. Eu mesmo fiz alguns testes e vi que não há nenhuma diferença entre um programa linear chamando uma função atrás da outra e um programa que chama várias Threads ao mesmo tempo. Isso acontece pois as Threads de um determinado programa, por padrão, é executada dentro do mesmo processo. Isso acaba limitando todo o processamento dentro do mesmo processo. Então se você tiver uma ou vária threads trabalhando juntas para resolver o mesmo problema o tempo será o mesmo. Mas o Python 3.1 traz uma novidade, uma nova classe chamada multiprocessing. Está classe ajuda a melhorar o tempo de processamento de um determinado software.</p>
<p style="text-align:justify;">Vamos supor que você tem uma lista de intervalos de números muito grandes, e você tem uma máquina Quad-Core e você quer usar o máximo destes quatro núcleos. A melhor forma é usar a classe multiprocessing e não a classe threading. Pois a multiprocessing irá criar um novo processo para cada chamada da função que você deseja executar ele irá criar um novo processo e o S.O. será responsável  por gerenciar estes processo, e logicamente os processos serão divididos entre os núcleos!</p>
<p style="text-align:justify;">Mas como fazer isso. Irei colocar dois arquivos anexados neste post. Um utilizando Threads e outro Processos. E este sistema mostra quanto tempo demora entre iniciar o programa e finalizar o ultimo processo. Se você tiver um computador com mais de um núcleo. Veja a diferença no resultado. Mas se seu computador for Mono-Core o resultado será basicamente o mesmo&#8230; Irá até demorar um pouco mais o de Processos pois há uma perda de processamento para criar os processos. Bom quem quiser ver o resultado mesmo vejam em sua lista de processos a diferença. Usando o programa com Threads você verá que a memória do Programa com Threads irá aumentar. No caso dos multi-processos você verá a lista de processos aumentar. Bom vejam com mais detalhes nos arquivos: <a href="http://ubuntu4free.files.wordpress.com/2011/02/testeprocess-txt.odt">Processos</a> <a href="http://ubuntu4free.files.wordpress.com/2011/02/testethread-txt.odt">Thread</a> (Utiliza Python 3.1)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=109&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2011/02/11/python-threads-x-process/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2011/02/280px-python_logo1.png" medium="image">
			<media:title type="html">Multi Python</media:title>
		</media:content>
	</item>
		<item>
		<title>Hora de ver se você é bom.</title>
		<link>http://ubuntu4free.wordpress.com/2011/02/03/hora-de-ver-se-voce-e-bom/</link>
		<comments>http://ubuntu4free.wordpress.com/2011/02/03/hora-de-ver-se-voce-e-bom/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 23:18:38 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Ubuntu Dicas]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=99</guid>
		<description><![CDATA[Faz tempo que eu não apareço por aqui, mas vou fazer o que&#8230; Trabalho, projetos e muitas outras coisas mais&#8230; Bom vamos lá, quem está ligado atualmente nos blogs de tecnologia por aí pode já estar sabendo que o Google está abrindo uma chance para você ganhar U$ 20.000,00. Sim! O Google quer que você [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=99&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Faz tempo que eu não apareço por aqui, mas vou fazer o que&#8230; Trabalho, projetos e muitas outras coisas mais&#8230; Bom vamos lá, quem está ligado atualmente nos blogs de tecnologia por aí pode já estar sabendo que o Google está abrindo uma chance para você ganhar U$ 20.000,00. Sim! O Google quer que você encontre uma falha crítica no Chrome que está tomando espaço na rede mundial de computadores. Agora com o Chrome 10 Beta é hora de testar a fundo. Prontos para encarar o desafio? Qualquer dúvida segue um <a href="http://dvlabs.tippingpoint.com/blog/2011/02/02/pwn2own-2011" target="_blank">link</a> que explica melhor esse desafio.<img class="aligncenter" title="ChallengeAccepted" src="http://images.memegenerator.net/challenge-accepted/File/277291/Challenge-accepted.jpg" alt="" width="400" height="300" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=99&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2011/02/03/hora-de-ver-se-voce-e-bom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://images.memegenerator.net/challenge-accepted/File/277291/Challenge-accepted.jpg" medium="image">
			<media:title type="html">ChallengeAccepted</media:title>
		</media:content>
	</item>
		<item>
		<title>Python &#8211; WTF?</title>
		<link>http://ubuntu4free.wordpress.com/2010/09/09/python-wtf/</link>
		<comments>http://ubuntu4free.wordpress.com/2010/09/09/python-wtf/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 00:11:30 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=74</guid>
		<description><![CDATA[Muitos hoje em dia sabem apenas que Python é uma cobra, o que não deixa de ser verdade, mas por outro lado muitos também sabem que Python é uma das linguagens de programação mais poderosas do mundo. Apesar de ter toda uma discussão de pessoas falarem que Java é melhor ou Ruby é melhor. Mas, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=74&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="text-align:justify;">
<p style="text-align:center;">
<p><a href="http://ubuntu4free.files.wordpress.com/2010/09/python-logocamel91.jpg"><img class="size-full wp-image-76   aligncenter" title="python-logo" src="http://ubuntu4free.files.wordpress.com/2010/09/python-logocamel91.jpg?w=600" alt=""   /></a></p>
<p id="internal-source-marker_0.21395770669914782" style="text-align:justify;">Muitos hoje em dia sabem apenas que Python é uma cobra, o que não deixa de ser verdade, mas por outro lado muitos também sabem que Python é uma das linguagens de programação mais poderosas do mundo. Apesar de ter toda uma discussão de pessoas falarem que Java é melhor ou Ruby é melhor. Mas, não estou aqui para discutir qual linguagem é melhor que a outra. Estou aqui para apresentar as vantagens de se usar Python.</p>
<p>Bom antes de receber qualquer crítica dentro desse tópico eu digo que, não vou defender diretamente Python para todas as soluções apresentadas a seguir. Pois um bom programador sabe que para determinados problemas algumas linguagens são mais eficientes do que outras. Mas vou mostrar algumas vantagens de se usar Python para determinados problemas. Antes vamos fazer uma pequena introdução.<br />
Python é uma linguagem multi paradigma, ou seja, é uma linguagem que abrange mais de uma forma de programar. Esta linguagem pode usar paradigmas Imperativos igual a C, Pascal e COBOL. Pode usar o paradigma Orientado a Objeto como Java, C++ e Smalltalk. E pode usar o paradigma Funcional como Haskell e Lisp. Neste Post vamos mostrar como se programar em algum destes paradigmas e suas vantagens em usar Python. <span id="more-74"></span></p>
<p><strong>Imperativo</strong></p>
<p>Quem já fez algum curso de programação certamente deve ter conhecido o paradigma Imperativo logo de cara. Pois em grande parte das faculdades ou cursos técnicos de computação se aprende um pouco do paradigma imperativo. As linguagens preferidas para faculdades para começar a ensinar programação são C ou Pascal. E nos cursos de informática costumam ensinar Visual Basic, que Deus tenha piedade das almas das pessoas que aprenderam Visual Basic.</p>
<p style="text-align:justify;">Em Python pode se usar o paradigma Imperativo como C sem problemas nenhum, usando seus for, while, do while. Mas de uma maneira muito mais limpa que C. Bom vamos ver um exemplo de um código em C que cria um vetor e inverte suas posições. Vejam o código abaixo. Bom só um detalhe, caso você nunca tenha programado na vida, por favor, ignore a imagem.</p>
<p style="text-align:justify;">
<div id="attachment_85" class="wp-caption alignleft" style="width: 322px"><a href="http://ubuntu4free.files.wordpress.com/2010/09/codigoc1.jpg"><img class="size-full wp-image-85" title="CodigoC" src="http://ubuntu4free.files.wordpress.com/2010/09/codigoc1.jpg?w=600" alt=""   /></a><p class="wp-caption-text">Código em C</p></div>
<div id="attachment_90" class="wp-caption alignright" style="width: 226px"><a href="http://ubuntu4free.files.wordpress.com/2010/09/codigocpy3.jpg"><img class="size-full wp-image-90" title="CodigoCpy" src="http://ubuntu4free.files.wordpress.com/2010/09/codigocpy3.jpg?w=600" alt=""   /></a><p class="wp-caption-text">Código em Python</p></div>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">Bom, não vou falar linha a linha, pois uma imagem vale mais que mil palavras. Mas em geral vocês podem ver as grandes diferenças principalmente dentro da declaração de variável onde em C você sempre tem que declarar uma variável com um tipo específico. No nosso caso estamos apenas trabalhando com o tipo de inteiros, mas sempre quando vamos definir uma nova variável nós devemos definir seu tipo. Neste caso dizemos que C é uma linguagem fortemente tipada, pois tem seus tipos muito bem definidos. No caso de Python você pode declarar uma variável em qualquer lugar e não precisa definir o tipo dela. Pois dentro do código você simplesmente aloca o valor à variável e o interpretador verificar o tamanho a ser alocado dentro da memória. Em outros termos podemos falar que o Python é uma linguagem com tipos fracos. Pois tem seus tipos implícitos. Mas uma grande vantagem de não haver tipagem é que você pode transformar uma variável que tinha o valor 1 atribuído em uma linha, na próxima linha você pode inserir o valor ‘a’. Isso quer dizer que o Python além de ter uma tipagem fraca, também tem uma tipagem dinâmica. Onde as variáveis podem assumir o valor que o programador desejar sem maiores problemas.</p>
<p><strong>Orientado a Objeto</strong></p>
<p style="text-align:justify;">Em orientação a objeto Python também pode trabalhar com este tipo de paradigma. Onde podemos criar vários objetos dentro de um determinado código como em Java. Mas em geral quem já programou em Java deve saber que ela também é uma linguagem de tipagem forte, e não tem tipos dinâmicos a não ser se você usar casting. Mas isso não vem ao caso no momento. Bom quando temos que declarar uma classe em Java, ou tiver que criar métodos e atributos tem muitas regrinhas a seguir, definindo o que será publico ou privado ou protegido. Python em geral não contém algo tão a fundo, que por um lado é muito útil, mas Python ainda tem uma forma muito poderosa de declaração de classes. Vejam a imagem:</p>
<p style="text-align:justify;">
<div id="attachment_79" class="wp-caption aligncenter" style="width: 322px"><a href="http://ubuntu4free.files.wordpress.com/2010/09/javapy.jpg"><img class="size-full wp-image-79" title="JavaPy" src="http://ubuntu4free.files.wordpress.com/2010/09/javapy.jpg?w=600" alt=""   /></a><p class="wp-caption-text">Classes em Python</p></div>
<p>Bom como vocês podem ver tem algumas coisas um pouco diferentes em Python quando se trabalha com classes, no caso de declarar os atributos você deve declarar os valores dentro do construtor __init__, sim o construtor padrão do Python se chama __init__. Também não gostei muito, mas, nem tudo são flores. Chegando a continuação o self equivale ao this do Java e do C++. No caso de Python esta parte de do desenvolvimento deve ser explicita onde em Java é implícito onde pode causar alguns problemas de se criar variáveis como parâmetros com o mesmo nome dos atributos. Isso Python se salva por obrigar a declaração do self. Usando o self você está falando para o interpretador que aquela variável faz parte da classe e todos os métodos poderão acessá-la utilizando o self. a frente dela.<br />
Para finalizar uma coisa que todos devem ter visto, onde estão as CHAVES? Bom dentro do Python a identação é onde se define o que está dentro do que. Como vocês podem ver que qualquer bloco se inicia por um ‘:’ que equivale ao conhecido ‘{’. E logo em seguida você deve identar para equivaler que aquele bloco de código está dentro do for ou da função.<br />
Em geral não venho falar que Python é melhor que outras linguagens, pois cada linguagem é especializada em um determinado problema. Veja COBOL, não há nada melhor para trabalhar com Strings do que COBOL. C comanda quase tudo dentro da sua máquina. Então você deve saber qual a melhor linguagem para seu problema, e aqui venho inaugurar a nova página do Ubuntu 4 Free, a página focada totalmente em Python. Tutoriais e vários códigos para ajudar programadores iniciantes em Python. Lá vou focar mais na forma de se programar, aqui apenas foi uma apresentação. Espero que não demore tanto para colocar um novo post aqui no Blog.</p>
<p>Quem quiser mais referencia vejam <a title="Python" href="http://python.org" target="_self">aqui</a></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=74&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2010/09/09/python-wtf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/09/python-logocamel91.jpg" medium="image">
			<media:title type="html">python-logo</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/09/codigoc1.jpg" medium="image">
			<media:title type="html">CodigoC</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/09/codigocpy3.jpg" medium="image">
			<media:title type="html">CodigoCpy</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/09/javapy.jpg" medium="image">
			<media:title type="html">JavaPy</media:title>
		</media:content>
	</item>
		<item>
		<title>SaaS &#8211; Desenvolvimento com o Google App Engine</title>
		<link>http://ubuntu4free.wordpress.com/2010/04/01/saas-google-app-engine/</link>
		<comments>http://ubuntu4free.wordpress.com/2010/04/01/saas-google-app-engine/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 21:54:35 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=60</guid>
		<description><![CDATA[Uma nova tendência dentro das empresas de consultoria e estudos em universidades é um dos ramos da engenharia de software chamado SaaS (Software as a Service). Antes de começarmos a falar da ferramenta do Google para desenvolvimento em Nuvem, precisamos entender o que é o SaaS. SaaS nada mais é que um software funcionando em [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=60&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uma nova tendência dentro das empresas de consultoria e estudos em universidades é um dos ramos da engenharia de</p>
<div id="attachment_65" class="wp-caption alignright" style="width: 152px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/appengine_lowres.gif"><img class="size-full wp-image-65" title="appengine_lowres" src="http://ubuntu4free.files.wordpress.com/2010/03/appengine_lowres.gif?w=600" alt=""   /></a><p class="wp-caption-text">Google App Engine</p></div>
<p>software chamado SaaS (Software as a Service). Antes de começarmos a falar da ferramenta do Google para desenvolvimento em Nuvem, precisamos entender o que é o SaaS.</p>
<p>SaaS nada mais é que um software funcionando em nuvem. Como isso funciona? Há certo tempo todos os softwares desenvolvidos eram apenas locais, com alguma conexão de rede para um servidor onde todos os dados eram armazenados em um banco de dados, mas todo o processamento ficava na maquina local e não no servidor. Após certo tempo, as aplicações começaram a se tornar web, mas ainda processadas dentro da maquina do usuário. Usando a arquitetura Cliente/Servidor. Atualmente os muitos aplicativos do Google como o Google Docs trabalham com a arquitetura SaaS. Onde todo o processamento, que era antes na máquina do usuário, é processado nos servidores do Google. Assim a única coisa que o usuário precisa, é apenas um meio de receber os dados para o seu computador. No caso do Google Docs esse meio de comunicação entre o software e o usuário é o browser.</p>
<p>Bom, agora que entendemos o que é SaaS, vamos entender o que é o Google App Engine. A toda poderosa Google foi uma das pioneiras no desenvolvimento de softwares em nuvem, e nisso viu uma grande forma de ganhar dinheiro. O</p>
<div id="attachment_66" class="wp-caption alignleft" style="width: 250px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/google-chrome-300x289.jpg"><img class="size-full wp-image-66  " title="google-chrome-300x289" src="http://ubuntu4free.files.wordpress.com/2010/03/google-chrome-300x289.jpg?w=600" alt=""   /></a><p class="wp-caption-text">Google Chrome OS - Sistema operacional baseado em SaaS</p></div>
<p>Google App Engine provê uma plataforma para os desenvolvedores que desejam criar alguma aplicação em nuvem, ou seja, um SaaS.</p>
<p>Essa plataforma do Google que também trabalha em nuvem, mas de forma diferente de um SaaS. Pois é uma plataforma, ou seja, é um PaaS (Pataform as a Service). Simplificando, o App Engine é uma plataforma que processa seu código na nuvem. Você não precisa compilar seu código na sua máquina, você pode mandar seu código para o servidor da Google e eles compilam para você e postarem o resultado em um domínio escolhido por você. Este domínio também é provido pelo Google.</p>
<p>Assim após eles postarem o resultado, você consegue ter acesso a sua aplicação já compilada e funcionando. E assim pode ter acesso aonde você quiser, levando a idéia do SaaS para perto de você. E o mais legal é que eles provem um serviço de banco de dados nos servidores, juntamente com um espaço de 500 Mb para a aplicação. Caso seu aplicativo exceda o tamanho grátis (500 Mb) o Google pode começar a cobrar pelo uso a mais dos seus servidores.</p>
<p>O Google App Engine trabalha tanto em Python quanto Java, isso é excelente para aprender uma nova tendência de mercado. Então, programadores Java e Python é hora de trabalhar. Quem quiser conhecer melhor é só entrar <a href="http://code.google.com/intl/pt-BR/appengine/" target="_blank">aqui</a>.</p>
<p>Para concluir, nosso proximo post sobre Cloud Computing será sobre o Chrome OS, o sistema operacional do Google que trabalha com SaaS.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=60&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2010/04/01/saas-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/appengine_lowres.gif" medium="image">
			<media:title type="html">appengine_lowres</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/google-chrome-300x289.jpg" medium="image">
			<media:title type="html">google-chrome-300x289</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalação e manutenção de pacotes</title>
		<link>http://ubuntu4free.wordpress.com/2010/03/24/instalacao-pacotes/</link>
		<comments>http://ubuntu4free.wordpress.com/2010/03/24/instalacao-pacotes/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 04:04:21 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Ubuntu Dicas]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Iniciantes]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=43</guid>
		<description><![CDATA[Gerenciamento de pacotes é uma das coisas primordiais de se saber quando queremos trabalhar com distribuições GNU/Linux. É extremamente necessário saber como instalar, remover, atualizar e pesquisar pacotes para sua distribuição. A Canonical, distribuidora do Ubuntu, tem um dos melhores repositórios de pacotes dentre as distribuições GNU/Linux. O início do gerenciamento de pacotes começa na [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=43&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Gerenciamento de pacotes é uma das coisas primordiais de se saber quando queremos trabalhar com distribuições GNU/Linux. É extremamente necessário saber como instalar, remover, atualizar e pesquisar pacotes para sua distribuição. A <a href="http://www.canonical.com/" target="_blank">Canonical</a>, distribuidora do Ubuntu, tem um dos melhores repositórios de pacotes dentre as distribuições GNU/Linux.</p>
<p>O início do gerenciamento de pacotes começa na configuração do arquivo <strong>/etc/apt/sources.list</strong>, este arquivo guarda todos os repositórios que deverão ser acessados para a instalação de seus novos pacotes ou atualizações.  Este arquivo quando aberto contem linhas como:</p>
<p><a href="http://ubuntu4free.files.wordpress.com/2010/03/source.jpg"><img class="aligncenter size-full wp-image-52" title="source" src="http://ubuntu4free.files.wordpress.com/2010/03/source.jpg?w=600" alt=""   /></a></p>
<p>Estas linhas são os endereços dos repositórios oferecidos pela Canonical. Atualmente não é necessário adicionar nenhum tipo de repositório auxiliar para instalação de pacotes do Ubuntu. Mas caso seja necessário instalar alguns softwares como o VirtualBox você deve inserir o repositório específico da Sun para atualização do software.</p>
<p>Bom, após verificar o arquivo de repositórios é hora de conhecer os comandos responsáveis por instalação,</p>
<p>atualização e manutenção dos pacotes dentro das distribuições <strong>Debian</strong>. Primeiramente vamos conhecer os pacotes de instalação. <span id="more-43"></span></p>
<p>Os pacotes de instalação das distribuições <strong>Debian </strong>são facilmente reconhecidos pela extensão .<em>deb</em>. Estes arquivos permitem uma instalação fácil e rápida de qualquer aplicativo que você deseja instalar seu SO. Caso você tenha um arquivo de instalação já salvo em seu PC a instalação é simples, apenas use o comando <em>dpkg</em>. Veja o exemplo</p>
<p><strong>dpkg –i pacote.deb</strong></p>
<div id="attachment_62" class="wp-caption alignright" style="width: 330px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/package1.jpg"><img class="size-full wp-image-62 " title="package1" src="http://ubuntu4free.files.wordpress.com/2010/03/package1.jpg?w=600" alt=""   /></a><p class="wp-caption-text">apt-get install</p></div>
<p>Se o pacote não tiver nenhuma dependência a instalação será feita com sucesso. Mas tocando no assunto dependências, vamos definir o que são dependências. Toda a vez que você for instalar um pacote novo em seu Linux, você deve verificar se o pacote não necessita de outros para funcionar. Isso funciona da mesma forma que se você quer instalar um jogo no Windows, você deve ter instalado antes o DirectX. No caso do Windows ele deixa você instalar sem problemas, e você descobre que seu jogo precisa de DirectX só quando você tenta usá-lo.</p>
<p>O Linux, ao contrario do Windows, ele não permite a instalação de pacotes com dependências. Mas há uma forma de instalar mesmo com dependências, apenas precisamos forçar a instalação do pacote. Simplesmente usando a tag <em>&#8211;force</em> junto ao comando.</p>
<p><strong>dpkg –i &#8211;force pacote.deb </strong></p>
<p>Mas as distribuições Linux também têm um administrador de pacotes para pacotes online, fazendo o download do pacote e logo em seguida executa a instalação. Este gerenciador é o <em>apt</em>. Esta poderosa ferramenta administrativa faz o download e instalação de qualquer pacote <em>.deb</em>.</p>
<p>Para a instalação de pacotes é simples, apenas digite:</p>
<p><strong>apt-get install nome-do-pacote</strong></p>
<p>Neste caso não é necessário colocar exatamente o nome do pacote, se você deseja instalar aplicativos como o <em>samba</em>. Você pode digitar diretamente o comando:</p>
<p><strong>apt-get install samba </strong></p>
<p>E o gerenciador de pacotes irá encontrar automaticamente os pacotes necessários. Caso não encontre ele irá exibir quais pacotes que contenham a palavra <em>samba </em>ou similares. Em geral a instalação não causa problemas.</p>
<p>Agora, caso você deseje listar todos os pacotes instalados no seu SO, você deve executar um comando muito simples que exibe todos os pacotes.</p>
<p><strong>dpkg –l</strong></p>
<p>Este comando lista com detalhes todos os pacotes instalados no sistema. Mas se você deseja encontrar todos os arquivos dos pacotes instalados, ou seja todos os pacotes com extensão <em>.deb</em> é só você executar o comando.</p>
<p><strong>ls /var/cache/apt/archive</strong></p>
<p>Este é o repositório de todos os seus pacotes instalados, se você desejar instalar os mesmos pacotes em algum outro PC, apenas copie este repositório inteiro e instale tudo na outra máquina.</p>
<p>Para terminar, caso você deseje remover algum pacote você pode usar o comando:</p>
<p><strong>apt-get remove nome_do _pacote</strong></p>
<p>Este comando permite que você remova todos os pacotes relacionados ao nome do pacote, mas não remove todos os arquivos de configuração. Para remover os arquivos de configuração você deve somar ao comando <em>apt-get remove</em> a tag <em>–purge</em>. Veja o exemplo</p>
<p><strong>apt-get remove –purge nome_do_pacote</strong></p>
<p>PS. Antes de qualquer instalação utilize o comando <em>apt-get update </em>para a atualização de novos pacotes para a instalação<em>.</em></p>
<p>Mais informações sobre o <em>apt-get</em> <a href="https://help.ubuntu.com/8.04/serverguide/C/apt-get.html" target="_blank">aqui</a>.</p>
<p style="text-align:center;"><span style="text-decoration:underline;"><em>Em memória a Manuel Rodrigues meu Avô &#8211; 1917 &#8211; 2010</em></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=43&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2010/03/24/instalacao-pacotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/source.jpg" medium="image">
			<media:title type="html">source</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/package1.jpg" medium="image">
			<media:title type="html">package1</media:title>
		</media:content>
	</item>
		<item>
		<title>$sudo &#8211; Como limitar o acesso aos usuários?</title>
		<link>http://ubuntu4free.wordpress.com/2010/03/22/sudo-limitar-acesso-usuarios/</link>
		<comments>http://ubuntu4free.wordpress.com/2010/03/22/sudo-limitar-acesso-usuarios/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 03:06:32 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Ubuntu Dicas]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=14</guid>
		<description><![CDATA[O comando sudo é muito conhecido dentro da comunidade dos administradores GNU/Linux, ele é uma das formas mais seguras para se executar uma aplicação com o poder de super usuário sem efetivamente acessar a conta do root. Mas muitos usuários da distribuição Ubuntu não costumam usar o comando sudo para as tarefas administrativas do seu [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=14&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O comando <em>sudo</em> é muito conhecido dentro da comunidade dos administradores GNU/Linux, ele é uma das formas mais seguras para se executar uma aplicação com o poder de super usuário sem efetivamente acessar a conta do root. Mas muitos usuários da distribuição Ubuntu não costumam usar o comando <em>sudo</em> para as tarefas administrativas do seu SO. Então logo após a instalação da distribuição já executam o comando:</p>
<div id="attachment_16" class="wp-caption alignright" style="width: 310px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/sudo.jpg"><img class="size-medium wp-image-16" title="$sudo" src="http://ubuntu4free.files.wordpress.com/2010/03/sudo.jpg?w=300&#038;h=249" alt="" width="300" height="249" /></a><p class="wp-caption-text">$sudo</p></div>
<p><strong>$ sudo passwd root</strong></p>
<p>Este comando já ativa automaticamente a conta do super usuário, o root. Isso para usuários e sysadmins pode ser uma facilidade muito grande na hora de gerenciar e configurar o sistema. Mas usar o comando <em>sudo</em> ao invés de logar diretamente como root é uma forma mais segura de administrar seu servidor. O comando <em>sudo</em> não é apenas uma forma de usar o aplicativo como se fosse root, há muitas outras coisas envolvidas para proteger a aplicação de possíveis atitudes maliciosas.</p>
<p>Quem já trabalhou com servidores GNU/Linux dentro de grandes empresas sabe que é altamente recomendado você logar com sua conta de usuário e após o acesso deve-se logar como root usando o comando <em>su</em>, que nada mais é que um comando para troca de usuário sem precisar fazer logout da conta atual, mas mesmo assim temos um grande problema. E se você tem um usuário que deve usar aplicativos como root, por exemplo, o <em>halt.</em> Mas ele não deve ter acesso a todos os aplicativos ou arquivos de configuração. Então, se liberarmos a senha do root para ele acessar o comando <em>sudo</em>, dentro do terminal ele também pode usar o comando <em>su</em> e assim ganha acesso total ao servidor, pastas de usuários, aplicativos de acesso remoto (<em>ssh</em>) e muito mais. Caso ele esteja mal intencionado ou mesmo inexperiente pode causar grandes problemas no servidor, uma pratica comum de especialistas em segurança de rede é desconfiar até dos próprios funcionários da empresa. Não permitir erros de usuários é um pré requisito dos sysadmins.</p>
<p>Para não permitir que determinados usuários acessem aplicativos específicos é preciso limitar o acesso e ainda, não abrir a senha de root do servidor para qualquer usuário que deseje utilizar aplicações específicas. A solução disso está localizada em um arquivo de configuração encontrado em <strong>/etc/sudoers.</strong> Em geral este arquivo contem todas as configurações de acesso do comando <em>sudo, </em>podendo assim limitar o acesso de determinado usuário. Bom, vamos começas a ver como se faz para configurar este arquivo e limitar o acesso de um usuário chamando <strong>teste</strong>.</p>
<p>Para a edição do arquivo <strong>/etc/sudoers</strong> precisamos executar o comando <em>visudo</em>, nas distribuições Ubuntu este comando executa o editor de texto <em>nano </em>(7.04+)<em> </em>em outras distribuições por padrão executa o editor de texto <em>vi</em>. Este editor foi desenvolvido para criar uma cópia do arquivo <strong>sudoers </strong>para a edição sem risco, e após gravar e fechar o arquivo o <em>visudo</em> verifica se há erros no arquivo e retorna o problema caso seja encontrado.<span id="more-14"></span></p>
<p>Para começar, deve-se ter em mente quais comandos serão permitidos aos usuários comuns. No nosso caso o nosso usuário <strong>teste </strong>requisitou acesso aos comandos: <em>shutdown, halt </em>e <em>reboot</em>. Agora vamos por partes, primeiro vamos visualizar o arquivo <strong>/etc/sudoers</strong>, execute em seu terminal a seguinte linha de comando:</p>
<p><strong>$ sudo visudo</strong></p>
<p>Em sua tela será exibido um arquivo com várias linhas comentadas, com a tag <em>#</em> no começo de cada linha, mas terá duas linhas ativas que são:</p>
<p><strong>Defaults</strong> <strong>env_reset</strong></p>
<p><strong>root ALL=(ALL) ALL</strong></p>
<p>Estas duas linhas mostram que o arquivo está com a configuração padrão e o root tem permissão para executar tudo. Mas queremos que nosso usuário <strong>teste</strong> tenha apenas acesso a executar os comandos <em>shutdown, halt </em>e <em>reboot</em>. Para</p>
<div id="attachment_22" class="wp-caption alignleft" style="width: 260px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/grant-root-privileges-to-regular-users-2.png"><img class="size-full wp-image-22" title="Grant-Root-Privileges-to-Regular-Users-2" src="http://ubuntu4free.files.wordpress.com/2010/03/grant-root-privileges-to-regular-users-2.png?w=600" alt=""   /></a><p class="wp-caption-text">root@server:/#</p></div>
<p>isso primeiramente temos que adcionar quais comandos serão liberados para o usuário <strong>teste</strong>, adcione o parâmetro a seguir logo abaixo da linha <strong>Defaults env_reset</strong>:</p>
<p><strong>Cmnd_Alias TESTE_SHUTDOWN = /sbin/shutdown, /sbin/halt, /sbin/reboot</strong></p>
<p>Vamos analisar o que este parâmetro faz, o inicio da tag começa com <strong>Cmnd_Alias</strong>. Este comando permite que você defina um nome para um conjunto de paths ou comandos, muito similar ao comando <em>alias </em>no terminal. O nome que referenciamos a tag é <strong>TESTE_SHUTDOWN</strong>, esta vai ser a forma de chamarmos essa tag mais a frente no arquivo. Ao final temos os paths dos programas, toda a vez que for definido um programa especifico deve-se inserir o path completo para evitar possíveis problemas de acesso.</p>
<p>Agora vamos definir qual usuário vai ter acesso a esses comandos, ao final do arquivo insira a seguinte tag:</p>
<p><strong>teste ALL=(ALL) NOPASSWD: TESTE_SHUTDOWN</strong></p>
<p>Esta ultima tag divide-se em três partes, primeira parte define qual usuários queremos configurar o acesso, nesse caso o usuário <strong>teste</strong>. O <strong>ALL=(ALL)</strong> define que este usuário pode executar qualquer programa com o comando sudo, mas a</p>
<p>senha será requisitada logo após o comando ou seja, caso o usuário não tenha a senha do root ele não vai ter como executar nenhuma aplicação não permitida. Por ultimo temos a terceira parte do comando<strong> NOPASSWD:TESTE_SHUTDOWN</strong>, aqui que encontramos a mágica, o comando <strong>NOPASSWD </strong>diz que para o usuário <strong>teste</strong>, toda a vez que ele executar algum comando dentro do <em>alias</em> <strong>TESTE_SHUTDOWN</strong> com o <em>sudo</em>, não será requisitado senha e irá executar sem pedir nada. Assim nosso usuário terá acesso aos comandos requeridos sem saber a senha de root, assim conseguimos manter a senha em sigilo e o usuário não terá mais problemas em desligar a máquina.</p>
<p>Concluindo, esta configuração é muito útil, mas tenha cuidado. Pois definindo determinados acessos aos usuários grandes problemas podem aparecer. Por exemplo, liberando o comando <em>gzip</em> para um usuário específico ele pode começar a compactar qualquer arquivo como o <strong>/boot/grub/menu.lst</strong>. O problema é que o comando <em>gzip</em> compacta o arquivo e exclui o original. Para não termos esse problema podemos definir no <em>visudo</em> toda a vez que o usuário digitar <em>gzip –c </em>não será requerido senha, mas se ele digitar qualquer outra opção a senha será requerida.</p>
<p>Mais informações sobre o <strong>/etc/sudoers </strong><a href="https://help.ubuntu.com/community/Sudoers" target="_blank">aqui</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=14&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2010/03/22/sudo-limitar-acesso-usuarios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/sudo.jpg?w=300" medium="image">
			<media:title type="html">$sudo</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/grant-root-privileges-to-regular-users-2.png" medium="image">
			<media:title type="html">Grant-Root-Privileges-to-Regular-Users-2</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud Computing &#8211; O que é?</title>
		<link>http://ubuntu4free.wordpress.com/2010/03/20/cloud-computing-o-que-e/</link>
		<comments>http://ubuntu4free.wordpress.com/2010/03/20/cloud-computing-o-que-e/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 15:51:10 +0000</pubDate>
		<dc:creator>trbaldim</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://ubuntu4free.wordpress.com/?p=6</guid>
		<description><![CDATA[Você já deve ter se perguntado o que é cloud computing ou já deve ter pelo menos ouvido falar. Bom, Cloud Computing é uma nova tendência dentro da computação. Sua idéia já vem de 2003, sim 2003, para os que achavam que Cloud computing é algo novo está errado. Mas naquela época não era muito [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=6&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 200px"><a href="http://ubuntu4free.files.wordpress.com/2010/03/cloud-question-mark-cloud-computing.jpg"><img title="cloud-question-mark-cloud-computing" src="http://ubuntu4free.files.wordpress.com/2010/03/cloud-question-mark-cloud-computing.jpg?w=190&#038;h=300" alt="" width="190" height="300" /></a><p class="wp-caption-text">O que é Cloud Computing</p></div>
<p>Você já deve ter se perguntado o que é cloud computing ou já deve ter pelo menos ouvido falar. Bom, <a title="Cloud Computing Wikipedia" href="http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem" target="_blank">Cloud </a><a title="Cloud Computing Wikipedia" href="http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem" target="_blank">Computing</a> é uma nova tendência dentro da computação. Sua idéia já vem de 2003, sim 2003, para os que achavam que Cloud computing é algo novo está errado. Mas naquela época não era muito difundida, pois era muito caro devido o alto custo do hardware. Hoje em dia com o barateamento do hardware, grandes companhias como a <a title="Amazon EC2" href="http://aws.amazon.com/ec2/" target="_blank">Amazon</a>, <a href="http://www.microsoft.com/windowsazure/" target="_blank">Microsoft</a> e <a href="http://code.google.com/intl/pt-BR/appengine/" target="_blank">Google</a> tem investido pesado em sistemas para cloud computing.</p>
<p>Mas, a grande duvida é saber o que é a cloud computing. Vamos entender um conceito de cloud, o que é uma nuvem (cloud)? Uma nuvem é aquela coisa branca que fica no céu onde todos podem ver. Opa! Achamos o conceito. A idéia de nuvem vem de que todos podem vê-la de qualquer lugar, como podemos fazer isso para computação? Simples, vamos fazer aplicações onde todos podem acessar de qualquer lugar. Essa é a idéia da Nuvem, acessar em qualquer lugar com qualquer maquina uma determinada aplicação sem ter que instalar nada na sua maquina.</p>
<p>Mas, o que isso muda na minha vida? Bom, isso pode ajudar você em muitas coisas e já ajuda sem você perceber. Você já usou o <a href="http://docs.google.com/" target="_blank">Google docs</a>? Caso já tenha usado e tem algum texto guardado lá, parabéns você já tem dados guardado em uma nuvem. Uma questão levantada por muitos é: Mas aquilo não é apenas uma Web application?</p>
<p>Sim, o Google docs é uma aplicação web, mas por você poder acessar em qualquer lugar aquela ferramenta ela está funcionando com princípios de nuvem.  Ou seja é uma aplicação que é executada em um servidor. E você apenas recebe os resultados do processamento. E, além disso, você consegue armazenar seu arquivo dentro da aplicação.</p>
<p>A vantagem dessa aplicação do Google é que podemos ver dois tipos de serviços da cloud juntos, um deles é o <a href="http://pt.wikipedia.org/wiki/Software_como_servi%C3%A7o" target="_blank">SaaS</a> (Software as a Service, Software como um Serviço). Este serviço é um dos ramos da engenharia de software que abrange a idéia de: Executar um programa dentro de um servidor e o resultado é apresentado para o usuário por meio de uma interface. Isso é o que acontece quando você executa o Google docs dentro do seu navegador.</p>
<p>Outro serviço que o Google docs fornece a vocês é o IaaS (Infra as a Service, Infra como um Serviço), este serviço permite que você use um servidor para guardar arquivos por meio de uma aplicação. Uma coisa interessante do serviço de IaaS é que algumas aplicações podem criar uma pasta dentro do seu computador e tudo que você guardar ali dentro daquela pasta na verdade não vai estar no seu PC mas sim vai estar em uma nuvem onde todos os seus dados vão estar protegidos e armazenados. Esta aplicação está ganhando certo mercado, pois a grande poderosa Canonical, criadora do <a href="http://ubuntu.com" target="_blank">Ubuntu</a>, está com o projeto Ubuntu One que provem um aplicativo chamado DropBox onde você pode guardar arquivos dentro de uma pasta mas na verdade os dados vão para uma nuvem e ficam arquivados dentro de um servidor.</p>
<p>Para resumir tudo isso, a cloud computing veio para ficar e vai ajudar muitas e muitas pessoas com isso. Mas essa é uma pequena introdução sobre as suas funcionalidades no nosso dia a dia e algumas ferramentas para vocês entenderem como a Cloud funciona. Nos próximos posts teremos mais informações sobre a cloud computing. Falaremos mais sobre infra-estrutura e alguns artigos mais técnicos de como configurar até quanto lucrativo é ter sua empresa rodando em cloud computing.  Mas, não se atentem apenas as essas informações passadas sobre SaaS e IaaS. Pois essas áreas da engenharia de software ainda abrangem muitas outras coisas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ubuntu4free.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ubuntu4free.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ubuntu4free.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ubuntu4free.wordpress.com&amp;blog=12713687&amp;post=6&amp;subd=ubuntu4free&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ubuntu4free.wordpress.com/2010/03/20/cloud-computing-o-que-e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffaffb33464a82fadb1a6b14f4d25961?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trbaldim</media:title>
		</media:content>

		<media:content url="http://ubuntu4free.files.wordpress.com/2010/03/cloud-question-mark-cloud-computing.jpg?w=190" medium="image">
			<media:title type="html">cloud-question-mark-cloud-computing</media:title>
		</media:content>
	</item>
	</channel>
</rss>
