<?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; Twitter</title>
	<atom:link href="http://changelog.umgeher.mitgnu.com/tag/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://changelog.umgeher.mitgnu.com</link>
	<description>just coding and .planning...</description>
	<lastBuildDate>Sun, 05 Feb 2012 00:31:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Changes in VCNews</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 03:36:49 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[VCNews]]></category>
		<category><![CDATA[clusters]]></category>
		<category><![CDATA[linkaaa]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tiny url]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Universe]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=729</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/" title="Changes in VCNews"></a>Morgenstern saw some crazy and huge python process in this week. The PID has about 2GB of ram! Yeap. Something’s wrong. Well… no more. threads with new setup. If some thread don’t find one node for  process, will just self &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/" title="Changes in VCNews"></a><p><a href="http://fernandomarcelo.com/" target="_blank">Morgenstern</a> saw some crazy and huge python process in this week. The PID has about 2GB of ram! Yeap. Something’s wrong. Well… no more.</p>
<ul>
<li>threads with new setup. If some thread don’t find one node for  process, will just self divide in little threads and runs in the place.</li>
<li>widget “tiny url”</li>
<li>widget (bigGeneric)</li>
<li>new home (new menu, old footer)</li>
<li>api for create tiny url</li>
<li>api for open tiny url</li>
<li>better node’s control</li>
<li>better task list</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/changes-in-vcnews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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[<a href="http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/" title="VCNews e Performance"></a>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 &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/vcnews-e-performance/" title="VCNews e Performance"></a><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>1</slash:comments>
		</item>
		<item>
		<title>oauth, Twitter e VCNews</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 10:22:38 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[athlon]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[dillo]]></category>
		<category><![CDATA[dualcore]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[oauth2]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[VCNews]]></category>
		<category><![CDATA[webbrowser]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=521</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/" title="oauth, Twitter e VCNews"></a>Hoje foi um dia muito produtivo, fiz algumas mudancas no VCNews. Agora nao temos mais acesso via autenticacao basica, ja’ que dia 30 agora o pessoal do Twitter ira’ tirar esse recurso, ja’ mudei todo o sistema para OAuth. Usei &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/" title="oauth, Twitter e VCNews"></a><p>Hoje foi um dia muito produtivo, fiz algumas mudancas no VCNews. Agora nao temos mais acesso via autenticacao basica, ja’ que dia 30 agora o pessoal do Twitter ira’ tirar esse recurso, ja’ mudei todo o sistema para OAuth. Usei uma lib chamada <a href="http://github.com/simplegeo/python-oauth2" target="_blank">oauth2</a> para fazer a autenticacao. Gostei muito do projeto. Esta’ com varios casos de testes. O que realmente faltou foi uma documentacao melhor.</p>
<p>Bem, tirando o Objects.Twitter.Drive, temos o Objects.Twitter.Client. Ja’ fiz todas as mudancas para nao utilizar mais o Drive e atualizei os testes. Considero stable ja’.</p>
<p>Outra modificacao que vale a pena comentar foi a transferencia de todos os Objects para o seguinte padrao:</p>
<pre>universeObject &gt;&gt; Object_core &gt;&gt; interface 1/2/3/4</pre>
<p>Assim temos maior liberdade para modificar os objetos  garantindo que nao ira’ causar nenhum erro no sistema.</p>
<p>==</p>
<p>Coloquei a maquina Viper para funcionar como terminal remoto usando o Windows 7 para essa tarefa. Com o dll que consegui, <a href="http://changelog.umgeher.mitgnu.com/links/concurrent-sessions-windows-7/">veja</a>, consigo deixar varios users conectados/usando a maquina ao mesmo tempo. Gostei muito desta solucao para manipular o Internet Explorer 7 e 8 (IE6 pessoalmente nao dou suporte, nenhum, quem usa nao deveria estar na frente de um computador ou ate’ mesmo respirando, existe varias otimas opcoes como <a href="http://www.opera.com" target="_blank">Opera</a>, <a href="http://www.firefox.com" target="_blank">Firefox</a>, <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a>, <a href="http://www.apple.com/safari/" target="_blank">Safari</a>, <a href="http://www.dillo.org/" target="_blank">Dillo</a> e ai vai…), melhor que deixar uma maquina virtual para fazer esse trabalho. Imagino que uma boa maquina como a Viper e’ (AMD Athlon 7750 Dual-Core Processor 2.70GHZ com 4GB de ram) fica otimo para 3 usuarios (fiz o teste conectando 3 users ao mesmo tempo via rede e um usando a maquina normalmente), colocar um workstation para essa tarefa em uma equipe e’ muito mais “barato” e simples que obrigar a equipe que ira’ fazer o front-end utilizar 2 ou mais maquinas virtuais.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/oauth-twitter-e-vcnews/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Changes…</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/changes/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/changes/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 19:31:30 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[dogtag]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[gtalk]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ocgi]]></category>
		<category><![CDATA[orkut]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[VCNews]]></category>
		<category><![CDATA[xmpp]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=514</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/changes/" title="Changes..."></a>Depois de algum tempo pensando vi que o melhor a fazer e’ mudar. Pois vamos la’: O que entra: dogtags A nova engine para gerar HTML usando objetos. Mais rapida, simples e de menor tamanho. Simplesmente faz tudo o que &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/changes/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/changes/" title="Changes..."></a><p>Depois de algum tempo pensando vi que o melhor a fazer e’ mudar. Pois vamos la’:</p>
<p>O que entra:</p>
<h3>dogtags</h3>
<p>A nova engine para gerar HTML usando objetos. Mais rapida, simples e de menor tamanho. Simplesmente faz tudo o que a OCGI fazia so’ que melhor.</p>
<h3>UDB</h3>
<p>O nosso drive se tornou algo realmente usavel. Com os testes que realizei esses dias eu vejo que esta’ melhor que o padrao antigo. UDB agora fica como padrao para “IO” em PostgreSQL e MySQL.</p>
<h3>VCNews</h3>
<p>O VCNews e’ um projeto para ter um certo controle nas midias digitais. A Engine esta’ completa para o Twitter e Meme (Yahoo!). Falta alguns outros modulos que ja’ estao em linha de producao como Yahoo! News, Google Search e Flickr. Facebook e Orkut entram na lista porem nao sei se e’ de grande validade a entrada do Orkut. Facebook eu gosto e tem muito recurso. Ja’ o Orkut acho um pedaco de software que nao deu certo nunca, me desculpem Orkuteiros. Mas desde sempre aquilo foi lento e sem uso pratico.</p>
<p>Com sua Engine pronta, digo que a sua API tambem esta’ pronta para o Universe! Podemos usar o Twitter e o Meme diretamente do VCNews.</p>
<h3>PyQt4</h3>
<p>Agora podemos ter a saida em PyQt4. As UI sao geradas pelo pyuic. As saidas, threads e operacoes ficam no Universe.</p>
<p>O que sai:</p>
<h3>OCGI</h3>
<p>Simplesmente nao faz mais sentindo ter ele quando o stable e o usavel com os novos padroes (HTML5 e cia). Depois de alguns anos vejo que a manutencao da engine OCGI nao faz sentindo. O uso de objetos para produzir o front-end e’ otimo, porem a manutencao dos padroes usados e’ muito maior nessa solucao.</p>
<h3>DB</h3>
<p>O drive que usavamos para MySQL esta’ simplesmente usando muito recurso para operacoes grandes.</p>
<h3>API Twitter</h3>
<p>Ja’ que o VCNews entrou e esta’ stable, nao vejo o porque deixar essa API na plataforma. Nao vamos dar manutencao direta nela. E quando tiver vai sair como stable primeiro para a VCNews’ Engine. Logo nao e’ mais necessaria.</p>
<p>==</p>
<p>E tambem… Abandonei o Jabber/XMPP/Gtalk. Nao vejo mais o porque usar. Nao me ajuda em nada, apenas atrabalha e pertuba o desenvolvimento. Prefiro o IRC. Quem ainda usa pode me achar na rede FreeNode, canal #mitgnu ou procure por umgeher. Para quem nao usa, mande email mesmo que responderei assim que conseguir.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter API</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/twitter-api/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/twitter-api/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 22:07:05 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Universe]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=444</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/twitter-api/" title="Twitter API"></a>Depois de um bom tempo sem mudar a API do Twitter, tivemos de fazer algumas modificacoes nela. Vamos la’… saiu de dominio apenas da Engine VCnews e veio para base do Universe ganhou manipulacoes via regular expressions do conteudo possui &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/twitter-api/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/twitter-api/" title="Twitter API"></a><p>Depois de um bom tempo sem mudar a API do Twitter, tivemos de fazer algumas modificacoes nela. Vamos la’…</p>
<ul>
<li>saiu de dominio apenas da Engine VCnews e veio para base do Universe</li>
<li>ganhou manipulacoes via regular expressions do conteudo</li>
<li>possui ja’ um drive para escrever em sqlite, mysql e xml (como vem do twitter) para nao abusar do twitter</li>
<li>temos objetos: Status, Mentions, User em stable e List em unstable</li>
<li>authentication ok</li>
</ul>
<p>O que achei bacana e’ reaproveitar a saida em diferentes adapters. Ja’ que podemos manipular diretamente na saida dos metodos, podemos aplicar diversos estados e layouts para a mesma “consulta”. Pelo o que testei conseguimos cair em ate’ 5% o consumo de recurso.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/twitter-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010/01/29</title>
		<link>http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/</link>
		<comments>http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 21:55:44 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[MitGNU]]></category>
		<category><![CDATA[SF]]></category>
		<category><![CDATA[ShakeIt]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[VCNews]]></category>
		<category><![CDATA[WPReader]]></category>
		<category><![CDATA[sf]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[upa]]></category>
		<category><![CDATA[upload de arquivos]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=406</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/" title="2010/01/29"></a>Sem internet Estou a alguns dias sem me conectar a internet, e fazia tempo que nao era tao produtivo como esses dias o tempo perdido com pessoas em jabber/xmpp/gtalk e irc e’ muito grande. Sem falar que elas atrapalham a &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/" title="2010/01/29"></a><h2>Sem internet</h2>
<p>Estou a alguns dias sem me conectar a internet, e fazia tempo que nao era tao produtivo como esses dias o tempo perdido com pessoas em jabber/xmpp/gtalk e irc e’ muito grande. Sem falar que elas atrapalham a concentracao, suas perguntas sobre questoes de programacao e universo unix me tiram totalmente do que estou fazendo, adoro resolver problemas, todo problema tem de ser visto, sempre. E’ com eles que voce consegue realmente aplicar o seu conhecimento e ganhar mais. E os seus links ao youtube e noticias sao um chamariz a parar de desenvolver. Com isso estou pensando seriamente em deixar para la’ IMs/irc. Vou fazer um teste sobre isso, talvez ficar sem IMs/irc por uma semana ou 15 dias. E e’ com isso que vejo que o simples email e’ muito bom, quando tenho realmente tempo entro e utilizo alguns minutos para responder perguntas de amigos ou entao para escrever para a lista mitgnu =)</p>
<h2>MitGNU</h2>
<p>Com algumas mudancas que aconteceram nesse final de ano, venho me concentrando 100% a MitGNU agora, empresa que sou co-founder e vejo que tem grande futuro. O que temos de qualidade de pessoal e’ muito forte. Mas nem tudo e’ alegria. Tivemos um “atraso”(?) com o ShakeIt. Nao considero atraso. Bem…</p>
<h2>ShakeIt</h2>
<p>O projeto ShakeIt nasceu de uma grande ideia do nosso CEO Rafael “HULK” Almeida. Nao irei falar o que e’ o projeto ShakeIt, mas que erramos em dar um deadline para ele. No caso o co-founder Thiago Tiveron escolheu a data por ser uma data legal, 10/01/10 (100110). Fui de acordo. Poderiamos lancar com certeza uma versao beta do projeto para um uso e pesquisa do que poderiamos estar com duvidas sobre o plano de negocio.</p>
<p>Achei super legal a ideia do Tiveron de colocar um deadline e correr atras de uma versao usavel ate’ aquele ponto. Verdade o meu empenho na tecnologia que o ShakeIt vai usar foi aumentado diversas vezes. Ainda mais quando fiz um countdown para (as) minha(s) workstation. Toda vez que meu olho batia no canto da tela via o tempo passar realmente. Era por varias vezes motivo de justificar a minha ambicao por nao cair no sono e codificar nesse tempo que para meu ponto de vista e’ um certo desperdicio. Resultado comecei a “aproveitar” melhor meu tempo. Comecei a dormir exatas 4 horas por dia no maximo. Quando me acostumei consegui fazer melhor, dormir apenas na manha, sim dormia das 07:00am ate’ 10/10:30am, e em alguns dias. Escolhi eles sabado, segunda e quarta. Demorei cerca que quase 10 dias para me acostumar. Mas deu certo. Nao posso falar que era 100% produtivo como costumo ser, mas se for colocar na ponta do lapis (? colocar na planilha) eu tive entre 75% a 95% do aproveitamento, isso de acordo com minha/o/o planilha/trac/redmine. Com isso tive mais horas de desenvolvimento e dedicacao a novas tecnologias que criamos na MitGNU.</p>
<p>E voltando a ideia do Tiveron, perfeita. So’ tem um problema, eu. Tenho um grande problema em falar que algo esta’ pronto, quando esta’ pronto? Quando esta’ perfeito? Nao quero algo bom, quero algo perfeito que me orgulhe de ter criado e orgulho em usar e fazer com que os outros usem. Passava dias inteiros melhorando algo que muitos falavam que estava perfeito. Mas sempre tem um X para melhorar. Errei nisso. Nao sou uma pessoa de deadlines. Sou uma pessoa que adota a versao de “estara’ pronto quando ficar pronto”. Por isso nao considero um atraso nosso ao ShakeIt nao ter uma versao beta para todos no dia do deadline. Com esse pequeno “atraso” aproveitei e melhorei/refiz varios objetivos no ShakeIt nesses dias sem internet.</p>
<ul>
<li>templates usando dogtag e nao mais OCGI</li>
<li>tudo esta’ em modulos</li>
<li>apliquei recurso de concorencia no ShakeIt (ver universe)</li>
<li>algoritimos usando novo “metodo” de threads e distribuicao</li>
<li>pages usando templates-dogtag</li>
</ul>
<h2>Universe</h2>
<p>Ajustei varias questoes no Universe, primeiro de tudo refiz o modulo de distribuicao de processamento. Agora podemos distribuir os processos em diversas maquinas de um modo facil. Tudo usando a mesma lib que criei em 2007. Todo processo de melhoramento de codigo e aplicar novos recursos foram no Python. Mas quero em um futuro proximo colocar a mao na lib denovo.</p>
<p>Outro ponto bacana foi melhorar o core do Universe. Agora temos um novo recurso de quando aquele modulo/objeto nao foi localizado ou gerou um erro, nosso core procura a ultima versao que aquele processo estava “certo” e refaz o processamento usando aquele codigo. Nao estou muito certo se ira’ ser util realmente, mas no caso imagino um sistema sendo atualizado em varias maquinas, quero que cada maquina (ponto de processamento) tenha uma copia do aplicativo, assim quando um processo gerar um erro, essa demanda ira’ passar para a maquina a frente dela, ate’ chegar em uma maquina que o resultado seja positivo, dai sim retornando a quem quis o processo e caminhar dai para frente normalmente. Nao tenho nome para esse recurso. Mas se for bem implementado, daqui a algum tempo nao teriamos mais nos preocupar em atualizar tudo de uma vez ou ter as quedas de sistema sem usar slave. Deixarei esse recurso como unstable e nao ira’ para o core da pre-stable. Quero lancar uma nova stable quanto antes para me focar mais em outros produtos.</p>
<ul>
<li>nova versao pre-stable</li>
<li>dogtags totalmente em uso, irei tirar o OCGI quando todos os  produtos estiverem usando dogtag</li>
<li>leitor de feed de wordpress (WPReader)</li>
</ul>
<h2>SF</h2>
<p>Estou bastante contente com a evolucao do SF. Temos varios novos recursos como download-key configurando a velocidade. Essa key permite que apenas o numero de pessoas possam usar aquela chave e quantos mb/s poderam abaixar. Quero melhorar o sistema de log do SF.</p>
<p>Alem de melhorar o sistema de log do SF, queria criar um recurso de quando subir um arquivo para o storage um sistema de “alerta”/msg qualquer no twitter, quero aplicar isso justamente para o UPA. Assim o pessoal que tiver cadastro no UPA podera’ “espalhar” seus arquivos com maior facilidade.</p>
<h2>VCNews</h2>
<p>Estive revendo o backend do VCNews, quero colocar ele para frente. Temos varios recursos do projeto final ja’. Teriamos de terminar o processo de app e front-end. Que estao praticamente a 0% do desenvolvimento.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/mitgnu/universe/20100128/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universe.Apps.Twitter</title>
		<link>http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/</link>
		<comments>http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 17:33:44 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[VCNews]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=141</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/" title="Universe.Apps.Twitter"></a>Escrevi alguns recursos novos para Universe, todos utilizando a Twitter’s API. Busca de informacoes sobre o user pelo ID ou Screen Name (vamos chamar de nickname? Melhor ne’…). Retornando para o nosso Objeto: Avatar Description Friends - numero de amigos &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/" title="Universe.Apps.Twitter"></a><p>Escrevi alguns recursos novos para Universe, todos utilizando a Twitter’s API.</p>
<p>Busca de informacoes sobre o user pelo ID ou Screen Name (vamos chamar de nickname? Melhor ne’…). Retornando para o nosso Objeto:</p>
<ul>
<li style="margin-left: 15px;"><strong>Avatar</strong></li>
<li style="margin-left: 15px;"><strong>Description</strong></li>
<li style="margin-left: 15px;"><strong>Friends </strong>- numero de amigos</li>
<li style="margin-left: 15px;"><strong>Homepage</strong></li>
<li style="margin-left: 15px;"><strong>ID</strong></li>
<li style="margin-left: 15px;"><strong>Location</strong></li>
<li style="margin-left: 15px;"><strong>Name</strong></li>
<li style="margin-left: 15px;"><strong>Screen name / nickname</strong></li>
<li style="margin-left: 15px;"><strong>Stats</strong> — numero de “posts”</li>
<li style="margin-left: 15px;"><strong>Timezone</strong></li>
<li style="margin-left: 15px;"><strong>UTC offset</strong></li>
</ul>
<p>Estou escrevendo agora no meu freetime um novo metodo para buscar informacoes dos amigos desse profile. Com isso estou lendo com cuidado as regras e licenses do Twitter para aplicacoes. Acho que cada Engine dele diferente vai ter que ter o proprio token de acesso e tudo mais. Veremos.</p>
<p>Alem disso a busca completa por “query/string” e tags esta’ pronta.<br />
Quero melhorar ainda algumas coisas desses recursos de busca, colocando refinamento por data e o que tiver a mais e ja’ trazendo alguns recursos que podem melhorar o desenvolvimento de Engines.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/plan/universe-apps-twitter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Uprofile e ShakeIT — primeiro uso…</title>
		<link>http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/</link>
		<comments>http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 10:02:10 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[.plan]]></category>
		<category><![CDATA[ShakeIt]]></category>
		<category><![CDATA[Uprofile]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[saas]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Universe]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=130</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/" title="Uprofile e ShakeIT - primeiro uso..."></a>Depois de construir grande parte do que eu imagino de um SaaS de controle de profile e seu uso pratico, sim estou falando do Uprofile, comecei a colocar ele a prova. Utilizando o projeto ShakeIt para isso. O ShakeIt vai &#8230;<p class="read-more"><a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/" title="Uprofile e ShakeIT - primeiro uso..."></a><p>Depois de construir grande parte do que eu imagino de um<a href="http://en.wikipedia.org/wiki/Software_as_a_service" target="_blank"> SaaS</a> de controle de profile e seu uso pratico, sim estou falando do Uprofile, comecei a colocar ele a prova. Utilizando o projeto ShakeIt para isso.</p>
<p>O ShakeIt vai usar todos os recursos do Uprofile e alguns destaques que acho importantes para o projeto:</p>
<ul>
<li>Bate-papo.</li>
<li>Menssagens entre usuarios.</li>
<li>Share de informacoes.</li>
<li>Storage de informacoes do profile (seus gostos/preferencias)</li>
</ul>
<p>Mas o que eu realmente gostei foi trocar toda logica de cadastro, login, session, storage e log dos users do site por apenas uma chamada na API do Uprofile. Claro, como fui eu que fiz o Uprofile tive de fazer todas essas logicas, mas no proximo projeto nao terei mais de desenvolver nenhuma logica. Alem de fazer uma rede de usuarios entre os projetos. Isso me deixou super motivado a trazer mais recursos ao Uprofile. O que me fez pensar… Porque nao trazer outros servicos a Uprofile? Comecei a desenhar alguns recursos novos como manipulacao do Twitter e Status. Uma ponto muito bom porque nao terei de manipular mais um objeto no banco de dados, toda informacao ja’ e’ guardada no Twitter mesmo.</p>
<p>E quem ganhou com isso foi o Universe, que agora conta com API do Twitter, ainda em beta na minha opiniao tem de melhorar e existem ideas para criar ferramentas nela.</p>
<p>Bem agora tenho mais uma Todo List para esse .plan:</p>
<ul>
<li>Fechar uma versao da API do Twitter.</li>
<li>Finalizar todos os testes do Uprofile, tanto API quanto Engine, para lancar uma versao publica.</li>
<li>Ligar o ShakeIt totalmente ao Uprofile.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/mitgnu/universe/uprofile/uprofile-e-shakeit-primeiro-uso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2009-07-01</title>
		<link>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-07-01/</link>
		<comments>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-07-01/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 23:59:00 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=128</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-07-01/" title="Twitter Updates for 2009-07-01"></a>Testando o #googlewave !!! Bem bacana!!! # #googlewave aprovado! Mas meu #emacs faz isso tambem. =) hehe # Browser fera com webkit para *nix… Arora. Meu padrao agora. =) # #swfdec sux! # Powered by Twitter Tools.]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-07-01/" title="Twitter Updates for 2009-07-01"></a><ul class="aktt_tweet_digest">
<li>Testando o #<a href="http://search.twitter.com/search?q=%23googlewave">googlewave</a> !!! Bem bacana!!! <a href="http://twitter.com/umgeher/statuses/2415401954">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23googlewave">googlewave</a> aprovado! Mas meu #<a href="http://search.twitter.com/search?q=%23emacs">emacs</a> faz isso tambem. =) hehe <a href="http://twitter.com/umgeher/statuses/2415994678">#</a></li>
<li>Browser fera com webkit para *nix… Arora. Meu padrao agora. =) <a href="http://twitter.com/umgeher/statuses/2417060159">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23swfdec">swfdec</a> sux! <a href="http://twitter.com/umgeher/statuses/2424348195">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-07-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Updates for 2009-06-30</title>
		<link>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-06-30/</link>
		<comments>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-06-30/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 23:59:00 +0000</pubDate>
		<dc:creator>umgeher</dc:creator>
				<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://changelog.umgeher.mitgnu.com/?p=126</guid>
		<description><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-06-30/" title="Twitter Updates for 2009-06-30"></a>John Carmack is god like. #doom #quake #wolfenstein #iphone #johncarmack #idsoftware # Powered by Twitter Tools.]]></description>
			<content:encoded><![CDATA[<a href="http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-06-30/" title="Twitter Updates for 2009-06-30"></a><ul class="aktt_tweet_digest">
<li>John Carmack is god like. #<a href="http://search.twitter.com/search?q=%23doom">doom</a> #<a href="http://search.twitter.com/search?q=%23quake">quake</a> #<a href="http://search.twitter.com/search?q=%23wolfenstein">wolfenstein</a> #<a href="http://search.twitter.com/search?q=%23iphone">iphone</a> #<a href="http://search.twitter.com/search?q=%23johncarmack">johncarmack</a> #<a href="http://search.twitter.com/search?q=%23idsoftware">idsoftware</a> <a href="http://twitter.com/umgeher/statuses/2405941466">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.umgeher.mitgnu.com/stuff/twitter/twitter-updates-for-2009-06-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

