<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>umgeher&#039;s changelog &#187; udb</title>
	<atom:link href="http://changelog.umgeher.mitgnu.com/tag/udb/feed/" rel="self" type="application/rss+xml" />
	<link>http://changelog.umgeher.mitgnu.com</link>
	<description>just coding and .planning...</description>
	<lastBuildDate>Fri, 30 Jul 2010 03:36:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>VCNews e Performance</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 23:08:50 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[cpu]]></category>
		<category><![CDATA[economizar]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lesswatts]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[notebook]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[udb]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[VCNews]]></category>
		<category><![CDATA[verde]]></category>
		<category><![CDATA[visual c#]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=617</guid>
		<description><![CDATA[Estou realmente empenhado no projeto VCNews (apelido). Esta’ muito interessante desenvolver esse projeto, a quantidade de informacao colida e manipulada e’ realmente grande. Nao estamos apenas lidando com Twitter mais. E so’ o Twitter gera muita, mas muita informacao para ser manipulada. O que e’ muito bacana, trabalhar em algo que tem ser performatico. drive [...]]]></description>
			<content:encoded><![CDATA[<p>Estou realmente empenhado no projeto VCNews (apelido). Esta’ muito interessante desenvolver esse projeto, a quantidade de informacao colida e manipulada e’ realmente grande. Nao estamos apenas lidando com Twitter mais. E so’ o Twitter gera muita, mas muita informacao para ser manipulada. O que e’ muito bacana, trabalhar em algo que tem ser performatico.</p>
<ul>
<li>drive do twitter 100% ok com as novas regras da api deles</li>
<li>manipulacao de usuarios, status e tags do twitter melhorada</li>
<li>gerenciamento interno de tags e links funcionando</li>
<li>agrupamento de instrucoes no drive de banco. Toda operacao feita no VCNews nao ira’ na mesma hora ao banco de dados.  Recurso novo do UDB. Depois falo sobre isso.</li>
<li>comecei a manipulacao de noticias como Yahoo! News</li>
</ul>
<p>E para isso funcionar a plataforma (Universe) teve de ser melhorada, o que foi muito bom. Podemos contar agora com Threadings melhoradas e com auto-balanceamento de carga.</p>
<p>UDB tambem foi melhorado. Para resumir, ele cria uma lista de instrucoes para dar ao banco de dados que ele esta’ conectado, por exemplo o MySQL (o que usamos no VCNews), e cria um “mock” para alguma busca ou qualquer outra instrucao que devera’ trazer aquele dado. Com isso usamos menos carga na rede com o banco de dados e ao mesmo tempo, fazer um insert ou select para cada view/acao nao me parece muito inteligente se podemos deixar em um processo mais rapido.</p>
<h3>Performance</h3>
<p>Sou a favor de performance sempre no maximo possivel. Para mim performance nao e’ apenas ter o resultado mais rapido, mas tambem usar menos recursos, ou seja… Economizar.</p>
<p>Menos uso da CPU, faz com que adiante a entrada do modo ocioso, salvando ai alguns watts. Imagine isso em uma grande escala. Voce esta’ salvando tempo e dinheiro. Ate’ mesmo em um notebook. Esses “watts” economizados serao a diferenca entre acabar a bateria em 4 horas ou em 4 horas e 30 minutos, por exemplo.</p>
<p>Algumas coisas que gosto de comentar sobre isso:</p>
<ul>
<li>Evitar polling. Serio pessoal. Polling e’ ruim. OK, existem algumas coisas que com polling e’ “melhor” de se fazer. Porem o abuso desta tecnica e’ realmente horrivel para performance. Tente fazer algo com msgs. Um exemplo de software que abusa ou abusava deste recurso, o <a href="http://www.nongnu.org/gksu/">gksu</a>. Ele chega a checar mil vezes por segundo se existem dados em um pipe. Meio exagerado nao e’?</li>
<li>Agrupar timers sempre que possivel e usar um para  realizar varias tarefas. Nunca um timer para cada status ou alguma coisa que voce esta’ usando. Assim voce economiza em chamadas no cpu deixando o ocioso por mais tempo.</li>
<li>Pensar em usar linguagens de alto nivel. Elas sao mais rapidas no desenvolvimento, porem a performance e’ muito abaixo de uma linguagem como C. Nao estou de olho no “quadro de luz” de cada linguagem script. Porem prefira Python a Ruby. Java e Visual C#… O que falar destes. Ultima vez que dei uma olhada, as duas ficavam bem parecidas. E gastavam mais que os testes usando python e ruby juntos.</li>
</ul>
<p>Um cpu ocioso consome em media 1 watt em media, claro depende do fabricante/modelo,  em carga total leva uma media de 34watts e em usa meia carga tem uma media de 24watts. Se voce levar para calcular algum processo em 1 segundo com potencia maxima do cpu voce ira’ usar 34watts e se fizer em metade da carga levara’ o dobro de tempo, ou seja… 2 x 24 = 48watts.</p>
<p>Gostou do assunto? Um site que recomendo e’ <a href="http://www.lesswatts.org" target="_blank">http://www.lesswatts.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universe + YQL</title>
		<link>http://changelog.umgeher.mitgnu.com/mitgnu/universe/universe-yql/</link>
		<comments>http://changelog.umgeher.mitgnu.com/mitgnu/universe/universe-yql/#comments</comments>
		<pubDate>Mon, 03 May 2010 21:55:18 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[MitGNU]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[YQL]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[udb]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=450</guid>
		<description><![CDATA[Dei uma olhada no YQL da Yahoo! para colocar como um recurso do Universe. Ja’ existia uma API em Python para esse recurso, porem nao gostei da solucao e coloquei fiz uma do zero para nosso Universe. Gostei mais da solucao que fiz porque temos padroes na saida, entao li a documentacao inteira do Meme [...]]]></description>
			<content:encoded><![CDATA[<p>Dei uma olhada no <a href="http://developer.yahoo.com/yql" target="_blank">YQL</a> da <a href="http://www.yahoo.com" target="_blank">Yahoo!</a> para colocar como um recurso do Universe. Ja’ existia uma <a href="http://python-yql.org/" target="_blank">API em Python</a> para esse recurso, porem nao gostei da solucao e coloquei fiz uma do zero para nosso Universe. Gostei mais da solucao que fiz porque temos padroes na saida, entao li a documentacao inteira do <a href="http://meme.yahoo.com.br" target="_blank">Meme</a> (primeiro da minha lista) e fiz esquemas e objetos para a saida de cada resultado possivel. Tornando o trabalho de manipulacao dos dados mais facil do que apenas um parser de XML. Tambem fiz uma boa saida para nao utilizar todo o limite oferecido pela YQL foi o drive direto em UDB ou XML. Antes de finalizar o modulo quero colocar um cache utilizando a saida do drive. Deixar o mais rapido possivel a consulta e diminuir o uso de HTTP no server.</p>
<p>Tambem tenho de colocar o Oauth para funcionar neste cara. Vi que a solucao python-yql usa o modulo python-oauth, como ja’ temos um modulo no Universe, vou ver o que posso fazer com o nosso e porque nao, se tiver faltando recurso, melhorar ele.</p>
<p>Resumo:</p>
<ul>
<li>acesso rapido e facil da YQL usando um Obj</li>
<li>retorno simples de todos os resultados possiveis do Meme</li>
</ul>
<p>Para quem tem acesso: universe.Apps.Yahoo.YQL</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/mitgnu/universe/universe-yql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WM e outros</title>
		<link>http://changelog.umgeher.mitgnu.com/mitgnu/universe/wm-e-outros/</link>
		<comments>http://changelog.umgeher.mitgnu.com/mitgnu/universe/wm-e-outros/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 05:36:44 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[MitGNU]]></category>
		<category><![CDATA[SI]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[aterm]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[bnc]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[libretto]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[sprites]]></category>
		<category><![CDATA[synergy]]></category>
		<category><![CDATA[udb]]></category>
		<category><![CDATA[workstation]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=261</guid>
		<description><![CDATA[Awesome Voltei a usar o AWESOME, sem duvidas, o melhor de todos window managers que existem por ai. Bem talvez perca para o meu em alguns pontos =) (sim, ja’ fiz um window manager do zero). Depois de certa campanha para eu parar de usar o Windowmaker (Tiveron esta’ lendo isso? Feliz?), voltei ao incrivel [...]]]></description>
			<content:encoded><![CDATA[<h1>Awesome</h1>
<p>Voltei a usar o <a href="http://awesome.naquadah.org/">AWESOME</a>, sem duvidas, o melhor de todos window managers que existem por ai. Bem talvez perca para o meu em alguns pontos =) (sim, ja’ fiz um window manager do zero). Depois de certa campanha para eu parar de usar o <a href="http://www.windowmaker.info/">Windowmaker</a> (<a href="http://blog.tiveron.mitgnu.com">Tiveron</a> esta’ lendo isso? Feliz?), voltei ao incrivel Awesome.</p>
<p><a href="http://farm3.static.flickr.com/2531/4113554437_3a35ab0f50_o.png"><img class="aligncenter" src="http://farm3.static.flickr.com/2531/4113554437_d94627c2e2.jpg" alt="" width="500" height="156" /></a></p>
<p>O que faz dele incrivel:</p>
<ul>
<li><span style="background-color: #ffffff;">Very stable, fast and small codebase and footprint;</span></li>
<li><span style="background-color: #ffffff;">First window manager using asynchronous <a style="color: #347272;" href="http://xcb.freedesktop.org">XCB</a> library instead of the old synchronous <a style="color: #347272;" href="http://en.wikipedia.org/wiki/Xlib">Xlib</a>: make <strong>awesome</strong> less subject to latency than many window managers;</span></li>
<li><span style="background-color: #ffffff;">Very well documented source code and API;</span></li>
<li><span style="background-color: #ffffff;">No mouse needed: everything can be performed with keyboard;</span></li>
<li><span style="background-color: #ffffff;">Real multihead support (XRandR, Xinerama or Zaphod mode) with per screen desktops (tags);</span></li>
<li><span style="background-color: #ffffff;">Implement many <a style="color: #347272;" href="http://www.freedesktop.org">Freedesktop</a> standards: <a style="color: #347272;" href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html">EWMH</a>, <a style="color: #347272;" href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG Base Directory</a>, <a style="color: #347272;" href="http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html">XEmbed</a>, <a style="color: #347272;" href="http://www.galago-project.org/specs/notification/">Desktop Notification</a>, <a style="color: #347272;" href="http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html">System Tray</a>;</span></li>
<li><span style="background-color: #ffffff;">Doesn’t distinguish between layers: there is no floating or tiled layer;</span></li>
<li><span style="background-color: #ffffff;">Use tags instead of workspaces: allow to place clients on several tags, and display several tags at the same time;</span></li>
<li><span style="background-color: #ffffff;">A lot of Lua extensions to add features: dynamic tagging, widget feeding, tabs, layouts …;</span></li>
<li><span style="background-color: #ffffff;"><a style="color: #347272;" href="http://dbus.freedesktop.org">D-Bus</a> support;</span></li>
</ul>
<p><span style="background-color: #ffffff;">Com ele tenho total controle de tudo no meu Desktop apenas usando o teclado. Bem outro ponto legal e’ que pratico o meu Lua.</span></p>
<h1>Aterm</h1>
<p><span style="background-color: #ffffff;">Tambem acabei voltando a usar o Aterm. Sempre gostei muito do Aterm, mas sempre acabava usando o Xterm ja’ que sempre encontro ele em qualquer lugar.</span></p>
<p><span style="background-color: #ffffff;">Meu .Xdefaults para Aterm:</span></p>
<blockquote>
<pre>aterm*transparent:true
<span style="background-color: #ffffff;">aterm*shading:40
aterm*foreground:Gray
aterm*scrollBar:false
aterm*saveLines:32767
aterm*font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1</span></pre>
</blockquote>
<p>Resultado do .Xdefaults esta’ no screen shot la’ em cima… =)</p>
<h1>SI</h1>
<p>Agora temos um recurso muito legal para quem ira’ utilizar a nuvem SI para deixar imagens padroes da sua app/site.</p>
<blockquote>
<pre>Si.sprite(['image1','image2','image3'])</pre>
</blockquote>
<p>Podemos criar um Sprite dinamico! Tenho de estudar alguns metodos para aproveitar ainda mais os espacos em branco deixado pela juncao das imagens e colocar atribuicao de preferir sprite horizontal ou vertical.</p>
<h1>Workstation</h1>
<p>Novo layout da minha workstation:</p>
<ul>
<li><span style="background-color: #ffffff;">coloquei o Libretto 50ct de volta ao trabalho rodando uma BNC para me deixar o maximo possivel online no #mitgnu (freenode)</span></li>
<li><span style="background-color: #ffffff;">walker (eeepc900) rodando o pidgin, skype, irssi e um cliente synergy para ter um controle facilitado</span></li>
<li><span style="background-color: #ffffff;">darthvader rodando synergy server e Universe</span></li>
<li><span style="background-color: #ffffff;">earl rodando varios services para minha rede local como Universe, UDB, stg dos meus projetos, postgresql, bittorrent e getstream (script meu para ripar radios online)</span></li>
<li><span style="background-color: #ffffff;">bajinger rodando sync server de meus documentos </span></li>
<li><span style="background-color: #ffffff;">sarabi servindo mysql</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/mitgnu/universe/wm-e-outros/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
