<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkIMQHY5cCp7ImA9WxBSF00.&quot;"><id>tag:blogger.com,1999:blog-12490094</id><updated>2009-12-24T22:23:01.828-02:00</updated><title>Tecnologia, comunicações, e outros assuntos</title><subtitle type="html">Opinião sobre a área de tecnologia, de comunicações digitais, empreendedorismo, motivação, fotografia, e qualquer outro assunto da hora...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tecnocom.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>240</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/tecnocom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;CkIMQHY4fip7ImA9WxBSF00.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-6906023884468704341</id><published>2009-12-24T22:13:00.001-02:00</published><updated>2009-12-24T22:23:01.836-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-24T22:23:01.836-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sociologia" /><category scheme="http://www.blogger.com/atom/ns#" term="organização" /><category scheme="http://www.blogger.com/atom/ns#" term="empresa" /><category scheme="http://www.blogger.com/atom/ns#" term="gervais" /><title>Os Sociopatas, os Sem-Noção e os Perdedores</title><content type="html">Um artigo publicado a alguns meses atrás chamado &lt;a href="http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or-the-office-according-to-the-office/"&gt;The Gervais Principle&lt;/a&gt; provocou uma ampla discussão sobre como realmente funciona a estrutura e a saúde de qualquer organização humana.&lt;br /&gt;
&lt;br /&gt;
O artigo, escrito por &lt;i&gt;Venkatesh Rao&lt;/i&gt;, usa como ponto de partida os dilemas passados pelos personagens do &lt;a href="http://pt.wikipedia.org/wiki/The_Office_%28EUA%29"&gt;The Office&lt;/a&gt;, e usa diversas situações retratados nos episódios para explicar os conceitos sob a ótica interpretada por Venkatesh.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Gervais&lt;/i&gt; é um dos criadores da série &lt;i&gt;The Office&lt;/i&gt;, e o princípio criado por &lt;i&gt;Venkatesh&lt;/i&gt; e nomeado como &lt;i&gt;Princípio de Gervais&lt;/i&gt; diz basicamente que:&lt;br /&gt;
&lt;blockquote&gt;Sociopatas, por seus próprios interesses, deliberadamente promove Perdedores de desempenho superior para gerência média, conduz Perdedores de desenpenho inferior para papéis de Sociopatas, e deixa os Perdedores de desempenho mediano se virarem sozinhos.&lt;br /&gt;
&lt;/blockquote&gt;A terminologia Sociopatas, Perdedores e Sem-Noção é uma semântica nova e controversa de &lt;i&gt;Venkatesh&lt;/i&gt;, mas não foi criação dele. Ele usou uma classificação criada no &lt;a href="http://gapingvoid.com/"&gt;Gaping Void&lt;/a&gt; que ele acredita refletir os conceitos apresentados: &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_c8x6-r--1ho/SzPx8EjfeNI/AAAAAAAAEEY/zT3sBWz-SXY/s1600-h/hughMcLeodCompanyHierarchy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SzPx8EjfeNI/AAAAAAAAEEY/zT3sBWz-SXY/s320/hughMcLeodCompanyHierarchy.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Agora, com a definição dos termos apresentados, releia o Princípio Gervais acima e veja se isso se aplica com a sua experiência na sua empresa. :-)&lt;br /&gt;
&lt;br /&gt;
O texto é um pouco prolixo e muito cínico e franco, o que fabricou críticas acaloradas por causa da classificação pejorativa e pelo rotulamento das pessoas, e também pela forma franca que expõe o interesse explícito do interesse de manipulação humana dos Sociopatas independente do julgamento de valor da intenção desta manipulação. &lt;br /&gt;
&lt;br /&gt;
A exposição dos Sociopatas não é diferente da forma que &lt;a href="http://pt.wikipedia.org/wiki/Nicolau_Maquiavel"&gt;Nicolau Maquiavel&lt;/a&gt; apresentou &lt;a href="http://pt.wikipedia.org/wiki/O_Pr%C3%ADncipe"&gt;O Príncipe&lt;/a&gt;, só que quem leu O Príncipe normalmente considera este comportamento distante e apenas aplicável a quem realmente fosse um rei ou um príncipe. A leitura inocente de Maquiavel é comportamento clássico de um Sem-Noção que acredita obter receitas de lidar com seus Sociopatas. Os Perdedores vão achar o livro apenas chato... :-)&lt;br /&gt;
&lt;br /&gt;
Os Perdedores são aqueles na base da pirâmide, que tem noção clara que estão fazendo uma escolha perdedora, entregando grande parte do seu esforço para lucro direto dos Sociopatas. Só que todo mundo começa a vida por aí, e muitos terminam a vida nesta posição, o que não é nenhum demérito, esta é uma posição de bastante liberdade para aprendizado e de liberar tempo para desenvolver interesses paralelos ao longo da vida.&lt;br /&gt;
&lt;br /&gt;
A camada do meio, chamada Sem-Noção, é a mais controversa por ter pessoas na sociedade que trabalham duro e que ganham merecidamente salários altos. São formados por profissionais que desempenham por muitos anos muito acima do que as empresas esperam e que mantém um certo ar de humanidade ao tentar traduzir os comportamentos francamente desumanos dos comportamentos dos sociopatas em interpretações mais humanas para seus Perdedores. Ou seja, o típico comportamento da gerência média. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_c8x6-r--1ho/SzP9t9WWnmI/AAAAAAAAEEg/7NYY1J8q-1U/s1600-h/compLifeCycle.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_c8x6-r--1ho/SzP9t9WWnmI/AAAAAAAAEEg/7NYY1J8q-1U/s200/compLifeCycle.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;O artigo segue discutindo o desenvolvimento das camadas ao longo do ciclo de vida da empresa, e desenvolve um insight muito interessante: quando os Sem-Noção tomam conta da empresa esvaziando o espaço dos Sociopatas através da burocracia, ou ainda reduzindo os Perdedores para inchar sua influência trazendo mais Sem-Noção para perto deles, isto são sinais claros que a empresa está caminhando para implosão.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_c8x6-r--1ho/SzQAX_uJO-I/AAAAAAAAEEo/TpGi-TGppKQ/s1600-h/langsTom.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_c8x6-r--1ho/SzQAX_uJO-I/AAAAAAAAEEo/TpGi-TGppKQ/s200/langsTom.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;i&gt;Venkatesh &lt;/i&gt;escreveu em seguida &lt;a href="http://www.ribbonfarm.com/2009/11/11/the-gervais-principle-ii-posturetalk-powertalk-babytalk-and-gametalk/"&gt;um artigo&lt;/a&gt; explorando um pouco mais a forma que a comunicação ocorre entre estes atores organizacionais: Posturetalk, Powertalk, Babytalk e Gametalk (traduzido para algo como discurso postural, e discurso de poder, conversa infantil, e comunicação como um jogo).&lt;br /&gt;
&lt;br /&gt;
É muito interessante verificar que, de acordo com o tipo de conversa que ocorre entre as pessoas, fica trivial verificar qual posição cada pessoa trabalha na organização. Não vou entrar em mais detalhes aqui para não fazer este meu artigo ficar muito grande, então leiam os artigos originais descobrir mais sobre estas linguagens.&lt;br /&gt;
&lt;br /&gt;
Se você achar interessante este assunto, não esqueça de contribuir pagando um café para o &lt;i&gt;Venkatesh&lt;/i&gt; através de um link em seu blog. Ele merece nosso suporte por ter trazido este assunto a luz e conseguir através da controvérsia fazer todos nós pensarmos sobre o nosso papel em nossas vidas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-6906023884468704341?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/6a615IAtmDI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/6906023884468704341/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=6906023884468704341" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/6906023884468704341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/6906023884468704341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/6a615IAtmDI/os-sociopatas-os-sem-nocao-e-os.html" title="Os Sociopatas, os Sem-Noção e os Perdedores" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_c8x6-r--1ho/SzPx8EjfeNI/AAAAAAAAEEY/zT3sBWz-SXY/s72-c/hughMcLeodCompanyHierarchy.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/12/os-sociopatas-os-sem-nocao-e-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UHRnYzfCp7ImA9WxBSEUk.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5945123603555830084</id><published>2009-12-18T11:00:00.000-02:00</published><updated>2009-12-18T11:00:37.884-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-18T11:00:37.884-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="portaria1510" /><category scheme="http://www.blogger.com/atom/ns#" term="ponto" /><category scheme="http://www.blogger.com/atom/ns#" term="Ahgora" /><title>Os WorkShops sobre a portaria 1510</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_c8x6-r--1ho/Syt4VH18VNI/AAAAAAAAEEI/cJzJpv7Sds4/s1600-h/DSC03849.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_c8x6-r--1ho/Syt4VH18VNI/AAAAAAAAEEI/cJzJpv7Sds4/s200/DSC03849.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Os &lt;a href="http://www.evento1510.com.br/"&gt;WorkShops&lt;/a&gt; foram um sucesso. Conseguimos reunir um grupo muito bom de pessoas e as discussões foram sempre de muito alto nível.&lt;br /&gt;
&lt;br /&gt;
Várias preocupações muito relevantes foram discutidas. O impacto da separação do controle de acesso do controle de ponto, a necessidade de troca dos equipamentos, o funcionário que executa trabalho externo e a grande questão de gerar os comprovantes em papel para os funcionários foram os itens que provocaram maior repercussão e incertezas.&lt;br /&gt;
&lt;br /&gt;
De nosso lado, tivemos a preocupação de passar a nossa noção de como esta mudança impactará na gestão de RH das empresas, em especial a gestão dos documentos eletrônicos, e também como o mercado de soluções deve estar se organizando durante este processo de transição.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c8x6-r--1ho/Syt50lg4kMI/AAAAAAAAEEQ/5ennYNSoSGQ/s1600-h/DSC03867.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_c8x6-r--1ho/Syt50lg4kMI/AAAAAAAAEEQ/5ennYNSoSGQ/s200/DSC03867.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;O resultado foi muito positivo e só temos a agradecer às pessoas que compareceram e aos nossos parceiros que viabilizaram que este evento acontecesse.&lt;br /&gt;
&lt;br /&gt;
O ano que vem o assunto deve ficar ainda mais quente, já que a partir de agosto a portaria entra em vigor por completo. Devido a isso, já até tivemos alguns convites para voltarmos a discutir o assunto nos próximos meses.&lt;br /&gt;
&lt;br /&gt;
Estaremos atentos e a disposição para ajudar e participar neste processo de mudança. A gente entende que a nossa grande missão é poder fazer a diferença para nossos clientes e para a sociedade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5945123603555830084?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/W3uBBRIYv0s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5945123603555830084/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5945123603555830084" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5945123603555830084?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5945123603555830084?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/W3uBBRIYv0s/os-workshops-sobre-portaria-1510.html" title="Os WorkShops sobre a portaria 1510" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_c8x6-r--1ho/Syt4VH18VNI/AAAAAAAAEEI/cJzJpv7Sds4/s72-c/DSC03849.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/12/os-workshops-sobre-portaria-1510.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UGQnY_fip7ImA9WxBTFks.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5078875232005783504</id><published>2009-12-12T23:53:00.000-02:00</published><updated>2009-12-12T23:53:43.846-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-12T23:53:43.846-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sudoku" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Resolvendo Sudoku em Python</title><content type="html">Este &lt;a href="http://norvig.com/sudoku.html"&gt;post do Peter Norvig&lt;/a&gt; me deixou agoniado para estudar as técnicas de solução do Sudoku. Achei a solução dele bem bacana, quase programando Lisp em Python usando os mecanismos de &lt;a href="http://en.wikipedia.org/wiki/List_comprehension"&gt;List Comprehension&lt;/a&gt; e recursividade.&lt;br /&gt;
&lt;br /&gt;
Tentei gerar uma versão um pouco mais simples removendo a recursividade e usando técnica de passagem múltiplas.&lt;br /&gt;
&lt;br /&gt;
Primeiro uma inicialização de estrutura de dados auxiliares:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;rows = 'ABCDEFGHI'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cols = '123456789'&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;squares = [r+c for r in rows for c in cols]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vectors = ([[r+c for c in cols] for r in rows] +&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [[r+c for r in rows] for c in cols] +&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [[r+c for r in srows for c in scols] &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for srows in ('ABC','DEF','GHI') &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for scols in ('123','456','789')])&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;peers = dict((s, set(s2 for vector in vectors if s in vector for s2 in vector))&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for s in squares)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;digits = list('123456789')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;i&gt;Squares&lt;/i&gt; contém um array com todos os nomes das caixinhas do tabuleiro do Sudoku (A1, A2, ...., A9, B1, B2, ...). &lt;i&gt;Vectors&lt;/i&gt; contém os vetores dos nomes das caixinhas das linhas, colunas e dos quadrados menores do tabuleiro, aonde cada vetor tem que conter os números de 1 a 9 conforme a regra do Sudoku.&lt;br /&gt;
&lt;br /&gt;
O dicionário &lt;i&gt;peers&lt;/i&gt; é a estrutura mais mágica, ela contém o conjunto dos nomes das caixinhas do tabuleiro que fazem parte da linha, coluna ou quadrado menor de cada caixinha. Com ela consigo rapidamente verificar quais números estão já sendo usados nos vetores.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;def parse_grid(grid):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; "Given a string of 81 digits (or . or 0 or -), return a dict of {cell:values}"&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; grid = [c for c in grid if c in '0,-123456789']&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return dict((squares[p], grid[p]) for p in range(len(squares)))&lt;br /&gt;
&lt;br /&gt;
def printboard(values):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; width = max(len(values[s]) for s in squares)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sep = '+'.join(['-'*(2+width)*3]*3)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; form = '|'.join([(' %%%ds ' % width*3)]*3)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for r in rows:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print form % tuple([values[r+c] for c in cols])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if r in 'CF': print sep&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;i&gt;parsegrid&lt;/i&gt; e &lt;i&gt;printboard&lt;/i&gt; são funções auxiliares: &lt;i&gt;parsegrid&lt;/i&gt; recebe uma string com números de configuração inicial do tabuleiro aonde a sequência na string descreve a posição no tabuleiro, 0 indicando posição vazia e 1-9 indicando o valor inicial. &lt;i&gt;printboard &lt;/i&gt;obviamente imprime o que está no tabuleiro passado como um dicionário de parâmetro.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;def possibilities(values):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; values = values.copy()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while True:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changed = False&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for s in squares:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not values[s] in digits:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[s] = ''.join(set(digits).difference(set(values[s2] for s2 in peers[s])))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if values[s] == '': return False&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for vector in vectors:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for digit in digits:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ocor = [s for s in vector if digit in list(values[s])]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(ocor) == 0: return False&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(ocor) == 1 and len(values[ocor[0]]) &amp;gt; 1:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[ocor[0]] = digit&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changed = True&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not changed: break&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return values&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;Esta função &lt;i&gt;possibilities &lt;/i&gt;recebe um dicionário de parâmetro e retorna uma cópia com os espaços em aberto preenchidos com as possibilidades para cada posição no tabuleiro. É basicamente uma versão multi-passagem do algoritmo recursivo do Peter Norvig.&lt;br /&gt;
&lt;br /&gt;
Primeiro a função varre o tabuleiro procurando as posições do tabuleiro em aberto e preenche com uma string das possibilidades de acordo com os vetores envolvidos na posição. Em vários casos apenas uma possibilidade é possível, o que já determina o valor da posição só nesta passada.&lt;br /&gt;
&lt;br /&gt;
Em seguida todos os vetores são analisados para verificar possibilidades únicas para os números de 1 a 9. Funciona assim: digamos que na linha A (A1-A9) as posições A1 a A8 contenham os números de 1 a 8, e a posição A9 contenha as possibilidades 7, 8 e 9, é evidente que o valor de A9 é o valor 9.&lt;br /&gt;
&lt;br /&gt;
Estes dois algoritmos são executados várias vezes até que nenhuma alteração não seja mais possível, o que em muitos casos já soluciona o Sudoku.&lt;br /&gt;
&lt;br /&gt;
Os casos aonde o Sudoku não é solucionado apenas através das restrições impostas nos vetores são considerados Sudokus avançados, pois envolvem teste simultâneo de alternativas para sua solução.&lt;br /&gt;
&lt;br /&gt;
Para isso, a força bruta parece ser a solução mais simples:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;def solve(values):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; values = possibilities(values)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if not values: return False&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for s in squares:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(values[s]) &amp;gt; 1:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for p in values[s]:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[s] = p&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = solve(values)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if res: return res&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return False&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return values&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;Esta função &lt;i&gt;solve &lt;/i&gt;aplica o &lt;i&gt;possibilities&lt;/i&gt;, procura o primeiro caso de uma caixa com múltiplas possibilidades e varre suas alternativas recursivamente tentando solucionar com o próprio &lt;i&gt;solve&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Agora vamos tentar solucionar o Sudoku mais difícil que existe segundo o próprio post que usei como referência:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;grid = """&lt;br /&gt;
100007090&lt;br /&gt;
030020008&lt;br /&gt;
009600500&lt;br /&gt;
005300900&lt;br /&gt;
010080002&lt;br /&gt;
600004000&lt;br /&gt;
300000010&lt;br /&gt;
040000007&lt;br /&gt;
007000300&lt;br /&gt;
"""&lt;br /&gt;
grid = parse_grid(grid)&lt;br /&gt;
printboard(grid)&lt;br /&gt;
printboard(possibilities(grid))&lt;br /&gt;
printboard(solve(grid))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;O que dá como resposta:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;span style="font-size: xx-small;"&gt;&amp;nbsp;1&amp;nbsp; 0&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 7 | 0&amp;nbsp; 9&amp;nbsp; 0 &lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 3&amp;nbsp; 0 | 0&amp;nbsp; 2&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 8 &lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 0&amp;nbsp; 9 | 6&amp;nbsp; 0&amp;nbsp; 0 | 5&amp;nbsp; 0&amp;nbsp; 0 &lt;br /&gt;
---------+---------+---------&lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 0&amp;nbsp; 5 | 3&amp;nbsp; 0&amp;nbsp; 0 | 9&amp;nbsp; 0&amp;nbsp; 0 &lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 1&amp;nbsp; 0 | 0&amp;nbsp; 8&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 2 &lt;br /&gt;
&amp;nbsp;6&amp;nbsp; 0&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 4 | 0&amp;nbsp; 0&amp;nbsp; 0 &lt;br /&gt;
---------+---------+---------&lt;br /&gt;
&amp;nbsp;3&amp;nbsp; 0&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 0 | 0&amp;nbsp; 1&amp;nbsp; 0 &lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 4&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 0 | 0&amp;nbsp; 0&amp;nbsp; 7 &lt;br /&gt;
&amp;nbsp;0&amp;nbsp; 0&amp;nbsp; 7 | 0&amp;nbsp; 0&amp;nbsp; 0 | 3&amp;nbsp; 0&amp;nbsp; 0 &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 8256&amp;nbsp;&amp;nbsp;&amp;nbsp; 8246 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 854&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 354&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 246&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 346 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 547&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 46 |&amp;nbsp;&amp;nbsp; 1954&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 195 |&amp;nbsp;&amp;nbsp; 1476&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 476&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 8247&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 827&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 134&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 183 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 3247&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 134 &lt;br /&gt;
------------------------+------------------------+------------------------&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 8247&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 827&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 176&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 126 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp; 8476&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 146 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 947&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 957&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 956 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 476&amp;nbsp;&amp;nbsp; 35476&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; 9827&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 832 |&amp;nbsp; 19257&amp;nbsp;&amp;nbsp;&amp;nbsp; 1957&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 187&amp;nbsp;&amp;nbsp;&amp;nbsp; 8357&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 135 &lt;br /&gt;
------------------------+------------------------+------------------------&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 98256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 826 | 254798&amp;nbsp;&amp;nbsp; 95476&amp;nbsp;&amp;nbsp; 98256 |&amp;nbsp;&amp;nbsp; 8246&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 9546 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 9825&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp; 9825&amp;nbsp;&amp;nbsp;&amp;nbsp; 9356&amp;nbsp; 325698 |&amp;nbsp;&amp;nbsp;&amp;nbsp; 826&amp;nbsp;&amp;nbsp;&amp;nbsp; 8256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 9825&amp;nbsp;&amp;nbsp; 98256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 | 125498&amp;nbsp;&amp;nbsp; 19546&amp;nbsp; 125698 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp; 82546&amp;nbsp;&amp;nbsp;&amp;nbsp; 9546 &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;1&amp;nbsp; 6&amp;nbsp; 2 | 8&amp;nbsp; 5&amp;nbsp; 7 | 4&amp;nbsp; 9&amp;nbsp; 3 &lt;br /&gt;
&amp;nbsp;5&amp;nbsp; 3&amp;nbsp; 4 | 1&amp;nbsp; 2&amp;nbsp; 9 | 6&amp;nbsp; 7&amp;nbsp; 8 &lt;br /&gt;
&amp;nbsp;7&amp;nbsp; 8&amp;nbsp; 9 | 6&amp;nbsp; 4&amp;nbsp; 3 | 5&amp;nbsp; 2&amp;nbsp; 1 &lt;br /&gt;
---------+---------+---------&lt;br /&gt;
&amp;nbsp;4&amp;nbsp; 7&amp;nbsp; 5 | 3&amp;nbsp; 1&amp;nbsp; 2 | 9&amp;nbsp; 8&amp;nbsp; 6 &lt;br /&gt;
&amp;nbsp;9&amp;nbsp; 1&amp;nbsp; 3 | 5&amp;nbsp; 8&amp;nbsp; 6 | 7&amp;nbsp; 4&amp;nbsp; 2 &lt;br /&gt;
&amp;nbsp;6&amp;nbsp; 2&amp;nbsp; 8 | 7&amp;nbsp; 9&amp;nbsp; 4 | 1&amp;nbsp; 3&amp;nbsp; 5 &lt;br /&gt;
---------+---------+---------&lt;br /&gt;
&amp;nbsp;3&amp;nbsp; 5&amp;nbsp; 6 | 4&amp;nbsp; 7&amp;nbsp; 8 | 2&amp;nbsp; 1&amp;nbsp; 9 &lt;br /&gt;
&amp;nbsp;2&amp;nbsp; 4&amp;nbsp; 1 | 9&amp;nbsp; 3&amp;nbsp; 5 | 8&amp;nbsp; 6&amp;nbsp; 7 &lt;br /&gt;
&amp;nbsp;8&amp;nbsp; 9&amp;nbsp; 7 | 2&amp;nbsp; 6&amp;nbsp; 1 | 3&amp;nbsp; 5&amp;nbsp; 4 &lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5078875232005783504?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/mb9lNZrk_q4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5078875232005783504/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5078875232005783504" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5078875232005783504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5078875232005783504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/mb9lNZrk_q4/resolvendo-sudoku-em-python.html" title="Resolvendo Sudoku em Python" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/12/resolvendo-sudoku-em-python.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEGRXk_cCp7ImA9WxBTEk4.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-2967564257867740274</id><published>2009-12-07T22:53:00.000-02:00</published><updated>2009-12-07T22:53:44.748-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-07T22:53:44.748-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ahgora" /><category scheme="http://www.blogger.com/atom/ns#" term="empreendorismo" /><title>Divisão do tempo numa empresa recém criada</title><content type="html">Dividir o trabalho entre ser empreendedor e executar as atividades de desenvolvimento de uma empresa é bastante complicado.&lt;br /&gt;
&lt;br /&gt;
Desenvolvimento é uma atividade de longo prazo, que envolve concentração e investimento expressivos de tempo. A criação de um produto não é uma atividade repetitiva, e sim imprevisível e com vários caminhos para um mesmo objetivo.&lt;br /&gt;
&lt;br /&gt;
As atividades mais importantes de um empreendedor são envolver as pessoas e fabricar o ambiente para que a evolução da empresa aconteça, através de motivação e remoção de problemas que obstruem o progresso. Estas atividades são atividades de curto prazo, aonde o envolvimento acontece quase no mesmo momento em que se torna necessário.&lt;br /&gt;
&lt;br /&gt;
Isto quer dizer que, no momento que uma empresa conta com algo como 2 a 3 pessoas adicionais aos empreendedores, os empreendedores precisam tomar o cuidado de dividir o seu tempo criteriosamente para que o resultado final somado seja o melhor possível.&lt;br /&gt;
&lt;br /&gt;
Esta divisão do tempo é responsabilidade direta dos empreendedores, e os mesmos precisam descobrir estratégias para conseguir um bom resultado. Uma estratégia comum é dividir as responsabilidades entre os empreendedores, de forma que um se envolve mais no lado empreendedor, motivacional e desbloqueador de problemas enquanto outro envolve mais na atividade fim.&lt;br /&gt;
&lt;br /&gt;
A alternativa é desenvolver estratégias de divisão de tempo, algo como o uso do turno da manhã para ser empreendedor e o turno da tarde para exercer a atividade fim. Até  &lt;a href="http://www.paulgraham.com/makersschedule.html"&gt;Paul Graham escreveu&lt;/a&gt; sobre a dificuldade desta divisão de tempo e sugeriu estratégias quando discutiu o impacto das reuniões em start-ups.&lt;br /&gt;
&lt;br /&gt;
Independente da maneira que se lida com este dilema, fica claro que os empreendedores perdem parte do seu tempo para viabilizar o uso do tempo de outros, criando uma redução prática do resultado que seria esperado pela adição de mais um colaborador.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c8x6-r--1ho/Sx2jg4YtB0I/AAAAAAAAD8w/-xu0zKDXFOs/s1600-h/wargames.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_c8x6-r--1ho/Sx2jg4YtB0I/AAAAAAAAD8w/-xu0zKDXFOs/s200/wargames.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Tem algum web designer ou fuçador de php que gostaria de dar uma mão para a gente? Aqui na &lt;a href="http://www.ahgora.com.br/"&gt;Ahgora&lt;/a&gt; cada vez tem mais coisas para aprender e fazer. Só tem uma coisa, tem que estar a fim de sair da casinha, abandonar bancos relacionais para aprender a usar &lt;a href="http://tecnocom.blogspot.com/2009/10/brincando-nas-nuvens-com-o-simpledb-da.html"&gt;SimpleDB&lt;/a&gt; e &lt;a href="http://tecnocom.blogspot.com/2009/10/backups-na-nuvem-com-s3-da-amazon.html"&gt;S3&lt;/a&gt;, e ajudar a descobrir maneiras de comunicação inovadoras pela Web, seja no HTML, design, Twitter, ou blogs. Garanto que vai ser uma escola e tanto trabalhar numa start-up como a nossa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-2967564257867740274?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/mayxrDxUGok" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/2967564257867740274/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=2967564257867740274" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2967564257867740274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2967564257867740274?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/mayxrDxUGok/divisao-do-tempo-numa-empresa-recem.html" title="Divisão do tempo numa empresa recém criada" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_c8x6-r--1ho/Sx2jg4YtB0I/AAAAAAAAD8w/-xu0zKDXFOs/s72-c/wargames.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/12/divisao-do-tempo-numa-empresa-recem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYGQnwyfip7ImA9WxNaE08.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-4148194869467743424</id><published>2009-11-27T09:08:00.000-02:00</published><updated>2009-11-27T09:08:43.296-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-27T09:08:43.296-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ponto" /><category scheme="http://www.blogger.com/atom/ns#" term="Ahgora" /><category scheme="http://www.blogger.com/atom/ns#" term="sociedade" /><title>Vamos discutir a Portaria 1510 do MTE</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_c8x6-r--1ho/Sw-u8qXBVuI/AAAAAAAAD38/e9DqXr7U-Qc/s1600/wave.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_c8x6-r--1ho/Sw-u8qXBVuI/AAAAAAAAD38/e9DqXr7U-Qc/s200/wave.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Os negócios estavam indo bem. Não na velocidade que a gente espera mas continuamente melhor a cada dia. Ai chega uma grande mudança e parece que o mundo cai abaixo.&lt;br /&gt;
&lt;br /&gt;
Em agosto deste ano, o &lt;a href="http://www.mte.gov.br/pontoeletronico/"&gt;Ministério do Trabalho e Emprego baixou a portaria 1510&lt;/a&gt; regulamentando o mercado de ponto eletrônico. Esta regulamentação foi uma surpresa o nosso time da &lt;a href="http://www.ahgora.com.br/"&gt;Ahgora&lt;/a&gt;, como deve ter sido para grande parte das empresas que usam ou desenvolvem soluções para ponto eletrônico.&lt;br /&gt;
&lt;br /&gt;
De início, dá para ver que é uma mudança drástica. Existe uma rigidez forte de como o registro de ponto tem que ser feito, como este equipamento deve funcionar e quais documentos deverão ser gerados e guardados.&lt;br /&gt;
&lt;br /&gt;
Isto fez o mercado inteiro de ponto eletrônico entrar em compasso de espera, esperando mais detalhes sobre esta mudança, e adiando grande parte dos planos de aquisição de soluções até a reestabilização do mercado.&lt;br /&gt;
&lt;br /&gt;
De outro lado, dá para perceber que a intenção da mudança é muito boa, pois disciplina esta situação do registro eletrônico de presença, dando regras para um mercado que estava acostumado a ficar sempre tentando testar o limite da legalidade das interpretações das jurisprudências sendo formadas sobre este tema.&lt;br /&gt;
&lt;br /&gt;
Isto não quer dizer que será uma transição fácil, e nem barata, para todos os envolvidos. Haverá impactos em como o registro é feito, como a empresa lida com o acesso do funcionário ao equipamento de registro, como como os dados serão transportados para softwares de apuração, como os documentos serão custodiados e como a fiscalização vai funcionar.&lt;br /&gt;
&lt;br /&gt;
É muita informação e existe bastante dificuldade de interpretação por todas as partes. Precisamos rapidamente envolver as pessoas que se importam com este processo, trocar figurinhas e buscar uma estratégia para lidar com este processo como empresas, como governo, e principalmente como sociedade.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_c8x6-r--1ho/Sw-tvjyWlrI/AAAAAAAAD30/dORMTa7QD5M/s1600/imagem-topo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_c8x6-r--1ho/Sw-tvjyWlrI/AAAAAAAAD30/dORMTa7QD5M/s200/imagem-topo.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Da nossa parte, resolvemos organizar e patrocinar um &lt;a href="http://www.evento1510.com.br/"&gt;evento regional&lt;/a&gt; sem fins lucrativos para envolver as pessoas que se preocupam com este processo de mudança. Já temos confirmados presenças de profissionais de RH das empresas da região, consultorias de RH, associações de empresas, contadores, advogados trabalhistas, representantes do ministério do trabalho e, ainda, de outras empresas que desenvolvem produtos e serviços para este segmento de mercado.&lt;br /&gt;
&lt;br /&gt;
Como empresa, a Ahgora está buscando nesta transição se posicionar como facilitador e agente de mudança para a sociedade. Vamos anunciar esta nossa visão no evento e apresentar algumas maneiras de como vemos que podemos contribuir neste processo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-4148194869467743424?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/4IQYorJK7Uk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/4148194869467743424/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=4148194869467743424" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4148194869467743424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4148194869467743424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/4IQYorJK7Uk/vamos-discutir-portaria-1510-do-mte.html" title="Vamos discutir a Portaria 1510 do MTE" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_c8x6-r--1ho/Sw-u8qXBVuI/AAAAAAAAD38/e9DqXr7U-Qc/s72-c/wave.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/11/vamos-discutir-portaria-1510-do-mte.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEHQ3w6fCp7ImA9WxNbFko.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-7019037431672405424</id><published>2009-11-19T22:57:00.000-02:00</published><updated>2009-11-19T22:57:12.214-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-19T22:57:12.214-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SaaS" /><category scheme="http://www.blogger.com/atom/ns#" term="Ahgora" /><title>Aplicação na Web é uma prestação de serviço</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_c8x6-r--1ho/SwXZy8izOwI/AAAAAAAAD3s/5krdYgYZzZ4/s1600/ponto2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_c8x6-r--1ho/SwXZy8izOwI/AAAAAAAAD3s/5krdYgYZzZ4/s200/ponto2.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;O carro chefe da &lt;a href="http://www.ahgorasistemas.com.br/"&gt;Ahgora&lt;/a&gt; é o Serviço de &lt;a href="http://www.ahgorasistemas.com.br/produtos/ponto-web/"&gt;Ponto Eletrônico Ahgora PontoWeb&lt;/a&gt;, e, se tem uma coisa que é complicada de explicar aos nossos clientes é o conceito de serviço SaaS (Software as a Service)...&lt;br /&gt;
&lt;br /&gt;
Até alguns anos atrás, todo software era vendido como produto, muitas vezes até embalado numa caixa, quase como sabão em pó. Aí vem a Internet e abre um espaço até então inimaginável alguns anos atrás, o oferecimento de aplicações e de serviços utilizando da Internet para permitir a operação remota, fora das premissas do cliente.&lt;br /&gt;
&lt;br /&gt;
Como é um paradigma diferente, leva um bocado de tempo para explicar como as coisas podem ser diferentes, muitas vezes é necessário alguns meses até a ficha cair.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_c8x6-r--1ho/SwXYkbfcADI/AAAAAAAAD3k/menc82EGSvU/s1600/NoSoftware.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SwXYkbfcADI/AAAAAAAAD3k/menc82EGSvU/s200/NoSoftware.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;O primeiro impacto é a mudança na visão de aquisição de ativos, como servidores e softwares de banco de dados e aplicações finais. SaaS terceiriza toda esta dificuldade e transfere a responsabilidade da aquisição de ativos para a cadeia fornecedora do serviço.&lt;br /&gt;
&lt;br /&gt;
O segundo grande impacto é que a continuidade do serviço não depende mais de um profissional de TI suportando os servidores, e a maior parte da responsabilidade passa para o fornecedor. A estrutura de TI necessária é apenas a que permita a conectividade com qualidade para a Internet.&lt;br /&gt;
&lt;br /&gt;
O terceiro impacto é financeiro. O custo de aquisição de know-how e de ativos é transferido para o fornecedor, e o mesmo passa a ser obrigado a prestar um serviço de financiamento da aquisição dos ativos e desenvolvimento de atualizações para os seus clientes. Ou seja, como o cliente apenas paga mensalmente pelo serviço, o fornecedor tem que cuidar do fluxo de caixa para manter o equilíbrio financeiro do empreendimento.&lt;br /&gt;
&lt;br /&gt;
O quarto impacto é a questão de transferência de controle das informações e da independência da empresa. Como a informação fica hosteada em outro lugar e a aplicação apenas está rodando em servidores fora de seu controle, existe uma preocupação muito grande com respeito a continuidade do serviço prestado e da segurança das informações.&lt;br /&gt;
&lt;br /&gt;
Estas preocupações tem sua razão de ser, mas temos que ver que as alternativas também apresentam riscos substanciais: o funcionário que estava cuidando do sistema pode ficar doente, o servidor pode dar problemas, ou ainda os backups podem estar comprometidos por falha operacional e com isso correr o risco de perder todos os dados armazenados.&lt;br /&gt;
&lt;br /&gt;
Em suma, uma aplicação SaaS não é apenas um produto instalado num servidor na Internet, é um serviço prestado que agrega suporte, continuidade, gestão de ativos e investimentos, itens tão, ou até mais, importantes que o software propriamente dito.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-7019037431672405424?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/SoDAxtj8rls" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/7019037431672405424/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=7019037431672405424" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7019037431672405424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7019037431672405424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/SoDAxtj8rls/aplicacao-na-web-e-uma-prestacao-de.html" title="Aplicação na Web é uma prestação de serviço" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_c8x6-r--1ho/SwXZy8izOwI/AAAAAAAAD3s/5krdYgYZzZ4/s72-c/ponto2.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/11/aplicacao-na-web-e-uma-prestacao-de.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBSX87fip7ImA9WxNbFU0.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-2959272931596648588</id><published>2009-11-17T23:34:00.000-02:00</published><updated>2009-11-17T23:34:18.106-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-17T23:34:18.106-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vale Do Silício" /><category scheme="http://www.blogger.com/atom/ns#" term="Ahgora" /><category scheme="http://www.blogger.com/atom/ns#" term="empreendorismo" /><title>Empreender para valer...</title><content type="html">Depois de alguns anos trabalhando a ideia, até mesmo através de blog que estava trabalhando em segundo plano (&lt;a href="http://aprendercomoempreender.blogspot.com/"&gt;Aprender como Empreender&lt;/a&gt;), acabei tomando uma decisão: estava na hora de tentar apostar a minha vida na paixão de criar empresas.&lt;br /&gt;
&lt;br /&gt;
Sexta-feira passada (13/11/2009) foi meu último dia como funcionário da &lt;a href="http://www.digitro.com/"&gt;Dígitro&lt;/a&gt;. Apesar dos altos e baixos, os quase 18 anos lá foram uma verdadeira escola. Conheci centenas de pessoas que fazem a diferença e tive a oportunidade de trabalhar com muitas das tecnologias mais modernas hoje no mercado.&lt;br /&gt;
&lt;br /&gt;
Mas agora o momento é outro, e vou buscar fazer a diferença participando da explosão de crescimento no &lt;a href="http://news.bbc.co.uk/2/hi/programmes/click_online/8284704.stm"&gt;Vale do Silício brasileiro: a Grande Florianópolis&lt;/a&gt;. Já com 450 empresas de base tecnológica uma massa crítica está formada para que grandes mudanças aconteçam na região.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.paulgraham.com/siliconvalley.html"&gt;Paul Graham algum tempo atrás escreveu&lt;/a&gt; que existem fatores muito importantes para que esta massa crítica desenvolva: clima ameno para atrair pessoas com capital para empreender, boas universidades próximas, uma massa de profissionais muito qualificadas e várias empresas próximas para suportar uma economia de escopo.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_c8x6-r--1ho/SwNNBqAR3NI/AAAAAAAAD3c/3a9G2wYSqn0/s1600/ahgora.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SwNNBqAR3NI/AAAAAAAAD3c/3a9G2wYSqn0/s320/ahgora.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Estou entrando como sócio da empresa &lt;a href="http://www.ahgorasistemas.com.br/"&gt;Ahgora Sistemas&lt;/a&gt; e nestes próximos meses eu garanto a vocês que a marca Ahgora se tornará rapidamente uma das promessas que ajudará na mudança de paradigma da cidade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-2959272931596648588?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/IoqKjdW0oBE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/2959272931596648588/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=2959272931596648588" title="4 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2959272931596648588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2959272931596648588?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/IoqKjdW0oBE/empreender-para-valer.html" title="Empreender para valer..." /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_c8x6-r--1ho/SwNNBqAR3NI/AAAAAAAAD3c/3a9G2wYSqn0/s72-c/ahgora.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/11/empreender-para-valer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFQXs6eCp7ImA9WxNWGEU.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-4280071559683940095</id><published>2009-10-18T16:10:00.000-02:00</published><updated>2009-10-18T16:10:10.510-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-18T16:10:10.510-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="simpledb" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><title>Brincando nas núvens com o SimpleDB da Amazon</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_c8x6-r--1ho/SttZlvx4nrI/AAAAAAAAD0g/so-ZWydDUWU/s1600-h/logo_aws.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_c8x6-r--1ho/SttZlvx4nrI/AAAAAAAAD0g/so-ZWydDUWU/s320/logo_aws.gif" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Dias atrás apresentei o serviço S3 da Amazon e como ele serve como uma boa &lt;a href="http://tecnocom.blogspot.com/2009/10/backups-na-nuvem-com-s3-da-amazon.html"&gt;ferramenta de backup usando o S3Fox&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Agora vou apresentar como brincar com o &lt;a href="http://aws.amazon.com/simpledb/"&gt;SimpleDB da Amazon&lt;/a&gt; que nada mais é que um banco de dados distribuído rodando na Internet.&lt;br /&gt;
&lt;br /&gt;
Como faz muito tempo que não brinco com php, vou usar o php com uma biblioteca de acesso aos serviços da Amazon chamado de &lt;a href="http://tarzan-aws.com/"&gt;Tarzan&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Feito o &lt;a href="http://tarzan-aws.com/download/"&gt;download&lt;/a&gt;, basta configurar no &lt;a href="http://tarzan-aws.com/wiki/technical/overview"&gt;diretório de trabalho&lt;/a&gt; suas permissões de acesso ao serviço da Amazon (variáveis AWS_KEY e AWS_SECRET_KEY, as mesmas usadas para o S3Fox). Não esquecer que o serviço SimpleDB precisa ser assinado na Amazon antes de poder usá-lo.&lt;br /&gt;
&lt;br /&gt;
Teste simples para ver os domínios (equivalentes a tabelas no caso de SQL):&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb-&amp;gt;list_domains()-&amp;gt;body-&amp;gt;ListDomainsResult);'&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;O resultado no caso de não existir nenhum domínio seria:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;SimpleXMLElement Object&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;(&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;Seguindo as documentações do &lt;a href="http://tarzan-aws.com/docs/2.0/files/sdb-class-php.html"&gt;SimpleDB do Tarzan&lt;/a&gt;, toda a API do SimpleDB está disponível. Vamos criar um domínio novo:&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb-&amp;gt;create_domain("dominio1"));'&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB(); print_r($sdb-&amp;gt;list_domains()-&amp;gt;body-&amp;gt;ListDomainsResult);'&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;O resultado do último comando mostra:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;SimpleXMLElement Object&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;(&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DomainName] =&amp;gt; dominio1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;Legal! O dominio1 apareceu. Colocando dados de Santa Catarina, São Paulo e Ceará:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb-&amp;gt;put_attributes("dominio1", "Santa Catarina", Array("capital"=&amp;gt;"Florianopolis", "populacao"=&amp;gt;"0005866568")));'&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php";$sdb = new AmazonSDB();print_r($sdb-&amp;gt;put_attributes("dominio1", "Sao Paulo",Array("capital"=&amp;gt;"Sao Paulo","populacao"=&amp;gt;"0040442795")));' &lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php"; $sdb = new AmazonSDB(); print_r($sdb-&amp;gt;put_attributes("dominio1","Ceara", Array("capital"=&amp;gt;"Fortaleza","populacao"=&amp;gt;"0008097276")));'&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;Aí, com uma &lt;a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2009-04-15/DeveloperGuide/index.html?SDB_API_Select.html"&gt;pesquisa simples do tipo SQL&lt;/a&gt; dá para procurar estados com mais de 10 milhões de habitantes:&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;$ php -r 'require_once "tarzan.class.php"; $sdb = new AmazonSDB();print_r($sdb-&amp;gt;select("select populacao from dominio1 where populacao&amp;gt;\"0010000000\"")-&amp;gt;body-&amp;gt;SelectResult);&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;O que reporta o estado esperado e sua população:&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;SimpleXMLElement Object&lt;br /&gt;
(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [Item] =&amp;gt; SimpleXMLElement Object&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Name] =&amp;gt; Sao Paulo&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Attribute] =&amp;gt; SimpleXMLElement Object&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Name] =&amp;gt; populacao&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Value] =&amp;gt; 0040442795&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-4280071559683940095?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/7EuyyaGAyQ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/4280071559683940095/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=4280071559683940095" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4280071559683940095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4280071559683940095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/7EuyyaGAyQ4/brincando-nas-nuvens-com-o-simpledb-da.html" title="Brincando nas núvens com o SimpleDB da Amazon" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_c8x6-r--1ho/SttZlvx4nrI/AAAAAAAAD0g/so-ZWydDUWU/s72-c/logo_aws.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/10/brincando-nas-nuvens-com-o-simpledb-da.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08NQ3o9cSp7ImA9WxNWE0Q.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-8360511398304552937</id><published>2009-10-10T01:20:00.001-03:00</published><updated>2009-10-12T22:04:52.469-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-12T22:04:52.469-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kanban" /><category scheme="http://www.blogger.com/atom/ns#" term="xp" /><category scheme="http://www.blogger.com/atom/ns#" term="agiles" /><category scheme="http://www.blogger.com/atom/ns#" term="scrum" /><title>Ágiles2009 em Florianópolis deu um banho</title><content type="html">Uau! A Conferência Latino-Americana de Sobre Metodologias Ágeis &lt;a href="http://www.agiles2009.org/"&gt;Ágiles2009&lt;/a&gt; foi muito melhor do que eu esperava. Várias apresentações muito interessantes e uma oportunidade de ouro de conhecer as pessoas da região que realmente se importam com desenvolvimento de software.&lt;br /&gt;
&lt;br /&gt;
Brian Marick começou com um keynote interessante discutindo como a esposa dele, que é veterinária, ensina a prática para os estudantes. Ele explicou sobre a metodologia de documentação SOAP (Subjective Objective, Assessment and Plan) para acompanhamento dos animais e como é difícil transferir a noção subjetiva para estes estudantes. Brian argumentou que os desenvolvedores de software precisam se espelhar nas experiências de transferência da habilidade de outras profissões.&lt;br /&gt;
&lt;br /&gt;
Alisson Vale matou a pau tentando passar uma quantidade absurda de informação em 45 minutos explicando Kanban desde o começo. É incrível que mesmo assim tenha conseguido deixar todos bem embasados nesta reinterpretação do Lean que é o Kanban.&lt;br /&gt;
&lt;br /&gt;
Thomas Looy fez uma apresentação espetacular mostrando num exemplo prático o efeito de não respeitar o TOC (teoria das restrições) e trabalhar com acúmulo de WIPs por tentar maximizar um desempenho local. É basicamente o segredo do Lean: otimização local gera desperdício, e deixar pessoas ociosas as vezes é mais econômico que fabricar estoque de trabalho inacabado.&lt;br /&gt;
&lt;br /&gt;
Thomas ainda disse umas 10 vezes: "é essencial a gestão visual". Todos tem que ter como ver o Kanban. O Kanban é que vai mostrar os WIPs e as ineficiências.&lt;br /&gt;
&lt;br /&gt;
Alexandre Magno e Manoel Pimentel fizeram um bate-bola sobre as dificuldades das implantações de Scrum e XP. Comentaram bastante da dificuldade de mudar a cultura da empresa e do mercado para aceitar os preceitos e deu para ver que a dificuldade de mudar as organizações é um problema muito sério que está gerando frustrações aos consultores e desenvolvedores em geral.&lt;br /&gt;
&lt;br /&gt;
O Keynote do final de quinta foi de Roy Singham transformando a causa dos agilistas numa cruzada moral que mudará o mundo e o transformará num mundo melhor, onde a lógica do capitalismo e do controle cartesiano das organizações estarão mais sobre controle. Meteu pau nas montadoras de carros americanas e disse para espelharmos na Toyota para prepararmos a nossa revolução.&lt;br /&gt;
&lt;br /&gt;
A paixão de Ray é contagiante por causa da paixão que ele transpira... Tão contagiante que por pouco não saí marchando para enviar meu currículo para a ThoughtWorks no instante final que ele anunciou a montagem do escritório em Porto Alegre. :-) Adorei o cara...&lt;br /&gt;
&lt;br /&gt;
Um caso interessante disso foi a apresentação do Tiago Garcez discutindo as diversas concessões para tentar viabilizar o desenvolvimento ágil da parte de TI da Belgian Post que, mesmo depois de um período de relativo sucesso, uma mudança de diretoria parece querer a volta do Waterfall e da ilusão de controle. A frustração é evidente...&lt;br /&gt;
&lt;br /&gt;
Para contrabalançar, David Hussman deu uma palestra excepcional destruindo os dogmas que estão se enraizando na comunidade de desenvolvimento ágil e a preocupação de viabilizar o processo de mudança. Insistiu bastante que a ortodoxia não deveria ter espaço e que a mudança tem que ter foco nas pessoas, sejam os desenvolvedores ou seus gestores.&lt;br /&gt;
&lt;br /&gt;
David falou bastante da construção do "groove" que pode caber na sua empresa: olhar de longe e perceber o que o grupo tá precisando para ser mais ágil e ajudar o grupo nesta mudança escolhendo um ou outro item por vez que provoque o maior retorno possível ao grupo em pouco tempo.&lt;br /&gt;
&lt;br /&gt;
A metáfora do "groove" é poderosa e ele compara com a construção de um ambiente para que uma banda consiga compor e tocar num ambiente confortável e acolhedor para a banda. E como ele tocou numa banda por cerca de 10 anos, pode falar com propriedade sobre a semelhança destas situações.&lt;br /&gt;
&lt;br /&gt;
O painel final fechou a conferência de forma muito legal. Marick, Larsen, Hussman, Singham, Kerievsky e Samuel Crescêncio discutiram sobre a experiência da conferência aqui na América do Sul e da oportunidade que temos para participar desta experiência mundial da briga pelo Lean e Ágil. Reclamaram que o Ricardo Semler é uma referência lá fora por causa do livro "Maverick" e que é considerado um agilista corporativo e que nós aqui no brasil quase não damos valor.&lt;br /&gt;
&lt;br /&gt;
Discutiram um monte novamente sobre a dificuldade de mudança das organizações, levando o Brian Marick a mandar todo mundo se liberar da escravidão e montar empresas de 12 pessoas escrevendo aplicações hospedadas de RubyOnRails... Caí na gargalhada com todo mundo lá... :-)&lt;br /&gt;
&lt;br /&gt;
Parece que o Ágiles2010 vai ser em Perú em Lima... Pô, é longe... Mas quem sabe... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-8360511398304552937?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/geOEWq5xCLs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/8360511398304552937/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=8360511398304552937" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/8360511398304552937?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/8360511398304552937?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/geOEWq5xCLs/agiles2009-em-florianopolis-deu-um.html" title="Ágiles2009 em Florianópolis deu um banho" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/10/agiles2009-em-florianopolis-deu-um.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cESHc6eCp7ImA9WxNXF00.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5022118285180046000</id><published>2009-10-04T22:10:00.000-03:00</published><updated>2009-10-04T22:10:09.910-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-04T22:10:09.910-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="s3fox" /><category scheme="http://www.blogger.com/atom/ns#" term="s3" /><title>Backups na núvem com S3 da Amazon</title><content type="html">E agora? Como guardar aquelas 5.000 fotos que você guardou nestes últimos 10 anos de fotografia digital?&lt;br /&gt;
&lt;br /&gt;
Existe uma quantidade enorme de serviços de backup na Internet hoje em dia, como &lt;a href="http://mozy.com/"&gt;Mozy&lt;/a&gt;, &lt;a href="http://www.getdropbox.com/"&gt;DropBox&lt;/a&gt;, &lt;a href="http://www.carbonite.com/"&gt;Carbonite&lt;/a&gt; ou &lt;a href="http://www.jungledisk.com/"&gt;JungleDisk&lt;/a&gt;, mas eu já sou mais do gosto de mexer diretamente com os arquivos e não ficar tão refém dos serviços prestados por um software instalado no micro.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://tecnocom.blogspot.com/2008/06/storage-na-amazon-e-na-google.html"&gt;S3 é um serviço da Amazon&lt;/a&gt; de armazenamento robusto de arquivos sem limite de quantidade e com replicação pelo menos tripla. É muito mais segurança do que qualquer backup que você deve estar aprontando de dentro de sua casa hoje. E o preço é bem em conta, gasto algo como $1,50 dólares por mês para manter os meus 10GB de fotos lá.&lt;br /&gt;
&lt;br /&gt;
E usando o &lt;a href="http://www.s3fox.net/"&gt;S3Fox&lt;/a&gt;, que é uma extensão para Firefox, o serviço de download, upload e sincronização ficam bem simples, praticamente a um click do mouse.&lt;br /&gt;
&lt;br /&gt;
O que você precisa para poder usar este serviço?&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;criar uma conta no &lt;a href="http://aws.amazon.com/"&gt;Amazon Web Services&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;contratar o &lt;a href="http://aws.amazon.com/s3/"&gt;serviço S3&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;instalar o &lt;a href="http://www.s3fox.net/"&gt;S3Fox&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;cadastrar no S3Fox as credenciais do S3 (Your Account/Security Credentials no site da Amazon).&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;A partir daí, é como transferir arquivos para um servidor como se fazia com o FTP, e curtir a tranquilidade de ter suas valiosas memórias seguras na nuvem da Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5022118285180046000?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/Kacm0tYwyXQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5022118285180046000/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5022118285180046000" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5022118285180046000?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5022118285180046000?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/Kacm0tYwyXQ/backups-na-nuvem-com-s3-da-amazon.html" title="Backups na núvem com S3 da Amazon" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/10/backups-na-nuvem-com-s3-da-amazon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGR3k-eCp7ImA9WxJQEks.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-4236377844952989961</id><published>2009-05-25T11:26:00.003-03:00</published><updated>2009-05-25T11:40:26.750-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-25T11:40:26.750-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="broadband" /><category scheme="http://www.blogger.com/atom/ns#" term="fibra" /><title>Backbone de fibra é também bem público</title><content type="html">Nos EUA, o &lt;a href="http://arstechnica.com/tech-policy/news/2009/05/new-bill-wants-fiber-conduit-built-into-every-road-project.ars"&gt;congresso está propondo&lt;/a&gt; que todas as novas estradas que receberem dinheiro do governo tenham incluido um duto de fibra "escura" de acesso aberto e com espaço para acomodar várias prestadoras de serviço.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.telegeography.com/cu/article.php?article_id=28572&amp;email=html"&gt;Vodafone da Nova Zelândia também está sugerindo&lt;/a&gt; uma parceria de todas as operadoras para contribuir numa parceria público-privada que gerencie uma empresa de fibra "escura" de acesso aberto.&lt;br /&gt;&lt;br /&gt;Será que veremos uma consolidação do conceito de backbone de fibra "escura" como bem público?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-4236377844952989961?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/jyryY8L8k7c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/4236377844952989961/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=4236377844952989961" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4236377844952989961?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4236377844952989961?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/jyryY8L8k7c/backbone-de-fibra-e-tambem-bem-publico.html" title="Backbone de fibra é também bem público" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2009/05/backbone-de-fibra-e-tambem-bem-publico.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQno6eip7ImA9WxRbFEo.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-3833377941192581344</id><published>2008-12-05T08:58:00.002-02:00</published><updated>2008-12-05T09:41:03.412-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-05T09:41:03.412-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ftth" /><category scheme="http://www.blogger.com/atom/ns#" term="broadband" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><title>Custos para fazer chegar a fibra até sua casa</title><content type="html">Quanto custa construir a última milha (até a sua casa) em fibra?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gigaom.com/2008/12/04/fiber-to-the-home-for-10000/"&gt;GigaOM está discutindo este custo&lt;/a&gt;, estimando algo entre $500 até $5.000 dólares dependendo da região onde está sendo instalada e se a construção é feita num lote ou individual.&lt;br /&gt;&lt;br /&gt;Os comentários argumentam que valores na ordem de $5.000 dólares estão superestimados, pois são valores passados pelas operadoras atuais, e que tem interesse em valorizar seus investimentos feitos nesta área.&lt;br /&gt;&lt;br /&gt;O artigo comenta também sobre o assunto de considerar a conectividade como um serviço público equivalente a água, esgoto e energia elétrica, e que a municipalidade deveria trabalhar para organizar a construção mais eficiente e econômica para a prestação deste serviço. Particularmente se o serviço for privado, é responsabilidade do poder público regular a qualidade e as condições de competitividade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-3833377941192581344?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/1wa1m3bUvpg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/3833377941192581344/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=3833377941192581344" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/3833377941192581344?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/3833377941192581344?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/1wa1m3bUvpg/custos-para-fazer-chegar-fibra-at-sua.html" title="Custos para fazer chegar a fibra até sua casa" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/12/custos-para-fazer-chegar-fibra-at-sua.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08MRX47fyp7ImA9WxRVGU8.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-1315768388016032527</id><published>2008-11-17T09:31:00.004-02:00</published><updated>2008-11-17T09:38:04.007-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-17T09:38:04.007-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="conectividade" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><category scheme="http://www.blogger.com/atom/ns#" term="dvd" /><title>Conteúdo digital e banda larga</title><content type="html">O que acontece quando a banda de acesso do usuário de Internet atinge valores de 50Mbps e 100Mbps e qualquer conteúdo digital, seja vídeo ou música, fica disponível rapidamente sem quase nenhum esforço?&lt;br /&gt;&lt;br /&gt;Basta ver o que está acontecendo na Coréia do Sul. A &lt;a href="http://info.abril.com.br/aberto/infonews/112008/15112008-6.shl"&gt;Warner está anunciando&lt;/a&gt; que está priorizando a distribuição de vídeos de forma on-line em vez do tradicional DVD.&lt;br /&gt;&lt;br /&gt;Pelo jeito o futuro vai ser esse... Caminharemos para um mundo onde toda a mídia consumida deixará de usar artefatos físicos para transporte e/ou caracterizar o direito de consumo da mídia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-1315768388016032527?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/EOMCOAOySwI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/1315768388016032527/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=1315768388016032527" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/1315768388016032527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/1315768388016032527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/EOMCOAOySwI/contedo-digital-e-banda-larga.html" title="Conteúdo digital e banda larga" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/11/contedo-digital-e-banda-larga.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFQHY9fip7ImA9WxRQGEg.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5191388860003111503</id><published>2008-10-12T21:05:00.001-03:00</published><updated>2008-10-12T21:06:51.866-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-12T21:06:51.866-03:00</app:edited><title>Sobre a crise americana...</title><content type="html">Muitos especialistas discutem sobre a razão deste descontrole do mercado.&lt;br /&gt;Veja a opinião deste ídolo de toda uma geração:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wxSgesDyvS4&amp;hl=pt-br&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wxSgesDyvS4&amp;hl=pt-br&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5191388860003111503?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/M8He_8QA-I4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5191388860003111503/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5191388860003111503" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5191388860003111503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5191388860003111503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/M8He_8QA-I4/sobre-crise-americana.html" title="Sobre a crise americana..." /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/10/sobre-crise-americana.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UGQ3o-eip7ImA9WxRSFEQ.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-2053661253458465282</id><published>2008-09-15T11:54:00.002-03:00</published><updated>2008-09-15T12:07:02.452-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-15T12:07:02.452-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ptt" /><category scheme="http://www.blogger.com/atom/ns#" term="broadband" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><category scheme="http://www.blogger.com/atom/ns#" term="brasil" /><title>Tráfego de Internet local está evitando os EUA</title><content type="html">Enfim as negociações e a &lt;a href="http://ptt.br/cgi-bin/all"&gt;montagem da infra-estrutura local de troca de tráfego de Internet aqui no Brasil&lt;/a&gt; estão &lt;a href="http://info.abril.com.br/aberto/infonews/092008/11092008-16.shl"&gt;começando a dar resultados&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este processo está sendo lento, principalmente na América Latina, mas pelo menos está acelerando nos últimos anos. Hoje cerca de 70% do tráfego de Internet da América Latina ainda passa pelo backbone com os eixos dos EUA e da Europa, enquanto a Europa já está com quase 80% do seu tráfego sendo feito intra-rede.&lt;br /&gt;&lt;br /&gt;Esta tendência é inevitável, pois as redes tendem a evoluir para acomodar de forma mais eficiente o tráfego presente, apesar de estar caminhando um pouco lento aqui no sul da América.&lt;br /&gt;&lt;br /&gt;Agora os &lt;a href="http://www.nytimes.com/2008/08/30/business/30pipes.html?pagewanted=2&amp;amp;pagewanted=all&amp;amp;_r=1&amp;amp;adxnnl=1&amp;amp;partner=rssuserland&amp;amp;emc=rss&amp;amp;adxnnlx=1221213957-eNMvxn0cWUnVYh8Vm0jIqA"&gt;especialistas em inteligência dos EUA, principalmente os militares, estão preocupados&lt;/a&gt;. Como o tráfego mundial está deixando de usar os EUA como passagem, não vai ficar tão fácil interceptar as comunicações para captura de informações como era antes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-2053661253458465282?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/67MGbkBD85Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/2053661253458465282/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=2053661253458465282" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2053661253458465282?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/2053661253458465282?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/67MGbkBD85Q/trfego-de-internet-local-est-evitando.html" title="Tráfego de Internet local está evitando os EUA" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/09/trfego-de-internet-local-est-evitando.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUAQns9eCp7ImA9WxVVFk8.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-1568170636752957271</id><published>2008-09-13T14:29:00.002-03:00</published><updated>2009-03-09T15:27:23.560-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-09T15:27:23.560-03:00</app:edited><title>Barco na Lagoa da Conceição - Florianópolis</title><content type="html">&lt;a href="http://www.flickr.com/photos/quartzo/2853419108/" title="Barco na Lagoa da Conceição por Quartzo, no Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3266/2853419108_90ebb7b427_m.jpg" width="240" height="161" alt="Barco na Lagoa da Conceição" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;p&gt;Aprendendo a fotografar... Ficou boa esta...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-1568170636752957271?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/wlRr9xY_LP8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/1568170636752957271/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=1568170636752957271" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/1568170636752957271?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/1568170636752957271?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/wlRr9xY_LP8/barco-na-lagoa-da-conceio-florianpolis.html" title="Barco na Lagoa da Conceição - Florianópolis" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/09/barco-na-lagoa-da-conceio-florianpolis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QGRHg6fip7ImA9WxRSEUg.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-8047956451872186751</id><published>2008-09-11T15:33:00.004-03:00</published><updated>2008-09-11T15:55:25.616-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-11T15:55:25.616-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="motivação" /><title>Lembrete...</title><content type="html">Fazer isto vale a pena?&lt;br /&gt;Que impacto gerei?&lt;br /&gt;Vai fazer diferença no longo prazo?&lt;br /&gt;Que relacionamentos criei?&lt;br /&gt;Independentemente de onde você vive, em qualquer coisa que você faça, você tem uma obrigação a cumprir.&lt;br /&gt;[&lt;a href="http://sethgodin.typepad.com/seths_blog/2008/09/remembering.html"&gt;Fonte: Seth Godin&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-8047956451872186751?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/N6Shb3Ek37U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/8047956451872186751/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=8047956451872186751" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/8047956451872186751?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/8047956451872186751?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/N6Shb3Ek37U/lembrete.html" title="Lembrete..." /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/09/lembrete.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUFQHs8fyp7ImA9WxRTFkw.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-4600875680429013721</id><published>2008-09-05T09:06:00.002-03:00</published><updated>2008-09-05T09:20:11.577-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-05T09:20:11.577-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="música" /><category scheme="http://www.blogger.com/atom/ns#" term="broadband" /><category scheme="http://www.blogger.com/atom/ns#" term="vídeo" /><category scheme="http://www.blogger.com/atom/ns#" term="dvd" /><title>Mercado de DVDs acabando na Coréia do Sul</title><content type="html">O que acontece quando a Internet tem banda suficiente para troca on-line de mídia? O mercado de distribuição de mídia em plástico vai para o saco!&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://newteevee.com/2008/09/03/the-death-of-the-korean-dvd-industry-a-sign-of-things-to-come-in-the-us/"&gt;NewTeeVee está discutindo&lt;/a&gt; o impacto que o broadband de altíssima velocidade disponível na Coréia do Sul no mercado de DVDs. Basicamente está acontecendo com DVDs lá o que a gente já viu acontecer com CDs aqui no Brasil: as gravadoras desistem do mercado!&lt;br /&gt;&lt;br /&gt;Pelo jeito, da mesma forma que a evolução da distribuição de músicas caminhou de CDs para MP3s em iPods e servidores na Internet, os DVDs também vão caminhar para os seus equivalentes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-4600875680429013721?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/bXns45rlXvQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/4600875680429013721/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=4600875680429013721" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4600875680429013721?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/4600875680429013721?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/bXns45rlXvQ/mercado-de-dvds-acabando-na-coria-do.html" title="Mercado de DVDs acabando na Coréia do Sul" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/09/mercado-de-dvds-acabando-na-coria-do.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMNSX0zeyp7ImA9WxdVFkg.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-6399718134919818387</id><published>2008-07-21T11:19:00.002-03:00</published><updated>2008-07-21T11:28:18.383-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T11:28:18.383-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="megadata" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Cassandra: bigtable/dynamo em código aberto do facebook</title><content type="html">&lt;a href="http://www.25hoursaday.com/weblog/2008/07/14/ProjectCassandraFacebooksOpenSourceAlternativeToGoogleBigTable.aspx"&gt;Algumas semanas atrás o Facebook liberou&lt;/a&gt; sem chamar muita atenção sua implementação de uma base de dados robusta e replicada inspirada do BigTable do Google e utilizando conceitos de distribuição de dados do Dynamo da Amazon.&lt;br /&gt;&lt;br /&gt;É um código feito em Java de cerca de 40 mil linhas que parece implementar um núcleo funcional mas sem todas as liberdades que existem nos sistemas da Google e da Amazon.&lt;br /&gt;&lt;br /&gt;Foi implementado recentemente por uma equipe pequena interna a Facebook como uma alternativa mais simples que a plataforma Hadoop que já está sendo usada a algum tempo no Facebook.&lt;br /&gt;&lt;br /&gt;O &lt;a href="http://code.google.com/p/the-cassandra-project/"&gt;código está no Google Code&lt;/a&gt; e existe uma &lt;a href="http://www.slideshare.net/jhammerb/data-presentations-cassandra-sigmod/"&gt;apresentação sobre o projeto&lt;/a&gt; discutindo alguns detalhes internos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-6399718134919818387?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/ue0BD5NuIGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/6399718134919818387/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=6399718134919818387" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/6399718134919818387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/6399718134919818387?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/ue0BD5NuIGQ/cassandra-bigtabledynamo-em-cdigo.html" title="Cassandra: bigtable/dynamo em código aberto do facebook" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/07/cassandra-bigtabledynamo-em-cdigo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YMQHk-eip7ImA9WxdVE00.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-7687949819637096064</id><published>2008-07-17T11:17:00.002-03:00</published><updated>2008-07-17T11:33:01.752-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-17T11:33:01.752-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mediocridade" /><category scheme="http://www.blogger.com/atom/ns#" term="motivação" /><category scheme="http://www.blogger.com/atom/ns#" term="inspiração" /><title>Um guia curto para dominar o mundo...</title><content type="html">Você quer ser uma peça do tabuleiro ou você quer jogar o jogo da sua vida?&lt;br /&gt;&lt;br /&gt;Este &lt;a href="http://chrisguillebeau.com/3x5/a-brief-guide-to-world-domination"&gt;pequeno e-book&lt;/a&gt; é muito interessante porque levanta as perguntas mais importantes da vida de todos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;O que você realmente quer desta vida?&lt;/li&gt;&lt;li&gt;O que você pode oferecer ao mundo que ninguém mais pode?&lt;/li&gt;&lt;/ul&gt;Com estas perguntas você é levado a analisar e questionar seu comportamento com a vida e imaginar como seria enfrentar as forças de conformação da sociedade, sair da mediocridade e realizar o que o universo realmente espera de você: mudar o mundo.&lt;br /&gt;&lt;br /&gt;O bacana é que na prática maximizar os objetivos de resultados para si e para o mundo não é contraditório. Na realidade o sucesso de um só é possível pelo sustento do sucesso do outro.&lt;br /&gt;&lt;br /&gt;Sair da mediocridade é difícil mas você deve a você e ao mundo pelo menos tentar começar. O que você fará hoje para começar a tomar o mundo?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-7687949819637096064?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/ioOi0egoxxo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/7687949819637096064/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=7687949819637096064" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7687949819637096064?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7687949819637096064?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/ioOi0egoxxo/um-guia-curto-para-dominar-o-mundo.html" title="Um guia curto para dominar o mundo..." /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/07/um-guia-curto-para-dominar-o-mundo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UERns5cCp7ImA9WxdWFU4.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-7178644102396880291</id><published>2008-07-08T14:25:00.003-03:00</published><updated>2008-07-08T14:46:47.528-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-08T14:46:47.528-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ebay" /><category scheme="http://www.blogger.com/atom/ns#" term="megadata" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Consistência eventual de dados no eBay</title><content type="html">A revista Queue da ACM publicou na &lt;a href="http://mags.acm.org/queue/20080506/"&gt;edição maio/junho de 2008&lt;/a&gt; um artigo chamado "ACID vs. BASE" de Dan Pritchett (eBay) falando do conceito de consistência eventual em armazenamento escalável de dados.&lt;br /&gt;&lt;br /&gt;É uma ótima introdução dos conceitos de gerenciamento de dados distribuídos aonde a consistência perfeita "ACID" é abandonada para permitir níveis de performance e escalabilidade que são impossíveis de atingir numa plataforma monolítica.&lt;br /&gt;&lt;br /&gt;Já fiz&lt;a href="http://tecnocom.blogspot.com/2008/06/processamento-seguro-dos-dados-na.html"&gt; vários comentários&lt;/a&gt; sobre o conceito de dados distribuídos, o interessante é como que todos os grandes serviços na Internet (Google, Amazon, eBay, etc) só conseguiram atingir o público mundial abandonando a segurança da consistência tão defendida pelos fornecedores convencionais de banco de dados comerciais.&lt;br /&gt;&lt;br /&gt;Na prática, quando os dados passam a ser divididos em milhares de servidores separados para conseguir a performance, a consistência "global" acaba sendo impossível de ser atingida.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-7178644102396880291?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/dObm2M2mkiI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/7178644102396880291/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=7178644102396880291" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7178644102396880291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7178644102396880291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/dObm2M2mkiI/consistncia-eventual-de-dados-no-ebay.html" title="Consistência eventual de dados no eBay" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/07/consistncia-eventual-de-dados-no-ebay.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cNR38-eCp7ImA9WxdQFks.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5702081558921075644</id><published>2008-06-13T11:34:00.002-03:00</published><updated>2008-06-16T22:11:36.150-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-16T22:11:36.150-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="datacenter" /><category scheme="http://www.blogger.com/atom/ns#" term="hosted" /><category scheme="http://www.blogger.com/atom/ns#" term="megadata" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Megadata, nova tendência para os banco de dados</title><content type="html">&lt;p&gt;Interessante este &lt;a href="http://bitworking.org/news/158/ETech-07-Summary-Part-2-MegaData"&gt;artigo de Joe Gregorio&lt;/a&gt; onde ele expõe uma tendência de crescimento do uso de quantidades absurdas de dados, exigências de robustez, facilidade para alteração constante da forma da representação dos dados e buscas praticamente instantâneas neste universo.&lt;/p&gt;Os servidores de banco de dados comerciais já não dão conta desta demanda a vários anos. &lt;a href="http://ferrari.blogs.digitro.com.br/?p=51"&gt;A Google, a Amazon&lt;/a&gt;, o &lt;a href="http://www.addsimplicity.com/downloads/eBaySDForum2006-11-29.pdf"&gt;eBay (leia isso!)&lt;/a&gt;, e muitos outros já aprenderam na prática que vários conceitos aprendidos no passado de depender de uma caixa preta (banco de dados) para implementar garantias transacionais e integridade referencial não é mais viável.&lt;br /&gt;&lt;br /&gt;Joe Gregorio tenta formular o conceito do Megadata:&lt;br /&gt; &lt;ul&gt;&lt;li&gt;dados distribuidos em múltiplas máquinas, em vez de centralizado num servidor gigante;&lt;/li&gt; &lt;li&gt;Joinless, sem joins e sem integridade referencial, pelo menos não no local de armazenamento;&lt;/li&gt; &lt;li&gt;De-normalizado, para evitar os joins;&lt;/li&gt; &lt;li&gt;Sem transações. Se as transações numa máquina separada já é cara, transações distribuidas em servidores torna isso completamente inviável pela perda de performance.&lt;/li&gt;&lt;/ul&gt;Ele termina argumentando que estas necessidades começaram em algumas grandes empresas de atuação global pela Internet, mas que logo caminharão para muitas outras aplicações, onde processamento e armazenamento massivo de baixo custo possam contruir novas oportunidades.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5702081558921075644?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/mc_uU1z_2JM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5702081558921075644/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5702081558921075644" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5702081558921075644?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5702081558921075644?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/mc_uU1z_2JM/megadata-nova-tendncia-para-os-banco-de.html" title="Megadata, nova tendência para os banco de dados" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/06/megadata-nova-tendncia-para-os-banco-de.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEER30_cCp7ImA9WxdQE0s.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-5405428511690854819</id><published>2008-06-13T11:17:00.008-03:00</published><updated>2008-06-13T11:33:26.348-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-13T11:33:26.348-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="datacenter" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>O banco de dados da Google</title><content type="html">Falei sobre o &lt;a href="http://tecnocom.blogspot.com/2008/06/storage-na-amazon-e-na-google.html"&gt;armazenamento&lt;/a&gt;, &lt;a href="http://tecnocom.blogspot.com/2008/06/processamento-seguro-dos-dados-na.html"&gt;administração de alterações&lt;/a&gt; e &lt;a href="http://tecnocom.blogspot.com/2008/06/computao-sob-demanda-da-amazon-ec2.html"&gt;servidores de processamento&lt;/a&gt; nas plataformas do Google e da Amazon. Agora resta saber como se utilizar destas ferramentas para construir abstrações mais convencionais de base de dados.&lt;br /&gt;&lt;br /&gt;No caso do Google, a principal ferramenta hoje é o &lt;a href="http://labs.google.com/papers/bigtable.html"&gt;BigTable&lt;/a&gt;. O BigTable é uma &lt;a href="http://en.wikipedia.org/wiki/BigTable"&gt;aplicação distribuída que opera sobre o Google File System (GFS)&lt;/a&gt; e implementa tabelas 3D genéricas, cujos vetores são linha, coluna e tempo. Todo o mapeamento é feito String para String, ou seja, as chaves linha, coluna e tempo são string e o condeúdo dos campos são também strings.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_c8x6-r--1ho/SFKCyBbBqhI/AAAAAAAAAOE/_lyeMwB3IDw/s1600-h/gfs1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_c8x6-r--1ho/SFKCyBbBqhI/AAAAAAAAAOE/_lyeMwB3IDw/s320/gfs1.jpg" alt="" id="BLOGGER_PHOTO_ID_5211371514707946002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As tabelas são obrigadoriamente ordenadas por linha, dentro da linha por coluna, e então por tempo, e são quebradas em unidades menores de tamanhos típicos de 200MB chamadas "tablets" para mapear melhor com o GFS. As "tablets" sempre contém linhas inteiras, ou seja, a fronteira da linha é usada para quebrar os "tablets".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_c8x6-r--1ho/SFKDAI_fpWI/AAAAAAAAAOM/YtWikPelVME/s1600-h/gfs2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_c8x6-r--1ho/SFKDAI_fpWI/AAAAAAAAAOM/YtWikPelVME/s320/gfs2.jpg" alt="" id="BLOGGER_PHOTO_ID_5211371757258122594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Então os "tablets" ficam sendo os motores de armazenamento de dados e alterações, onde um "log" em disco e uma versão em memória das alterações do "log" são usadas para registrar e preservar as alterações recentes, e tabelas chamadas "SSTables" contém mapas mais antigos de &amp;lt;linha,coluna,tempo&amp;gt; para &amp;lt;dado&amp;gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_c8x6-r--1ho/SFKDIk8SfwI/AAAAAAAAAOU/D2vLznLirmE/s1600-h/gfs3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SFKDIk8SfwI/AAAAAAAAAOU/D2vLznLirmE/s320/gfs3.jpg" alt="" id="BLOGGER_PHOTO_ID_5211371902199824130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uma aplicação em batch faz compilações dos "logs" para novas "SSTables" constantemente, e outra mais esporádica agrupa as "SSTables" em uma única "SSTable" para reclamar o espaço em disco dos elementos que foram retirados ("Garbage Collection").&lt;br /&gt;&lt;br /&gt;Para quem tiver interesse, existe uma &lt;a href="http://video.google.com/videoplay?docid=7278544055668715642"&gt;apresentação sobre o BigTable feita pelo Jeff Dean da Google na Universidade de Washington no Google Video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;O BigTable não possui interface SQL, não é uma base relacional e nem transacional, &lt;a href="http://storagemojo.com/?p=239"&gt;implementando apenas garantias de alterações atômicas ao nível de linha&lt;/a&gt;. Entretanto, com os devidos cuidados, &lt;a href="http://storagemojo.com/?p=240"&gt;esta é a base para aplicações gigantescas oferecidas pelo Google&lt;/a&gt;, como o Google Earth (70TB de dados), Google Analytics (200TB de dados) e a base de buscas do Google (800TB de dados).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_c8x6-r--1ho/SFKD0F-iuRI/AAAAAAAAAOc/lYusXQcUyaU/s1600-h/amazon.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_c8x6-r--1ho/SFKD0F-iuRI/AAAAAAAAAOc/lYusXQcUyaU/s320/amazon.gif" alt="" id="BLOGGER_PHOTO_ID_5211372649802021138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Já a Amazon não fala muito como implementa suas aplicações, apenas que utiliza exatamente a mesma infraestrutura de serviços web sendo oferecida hoje (S3, EC2 e SQS).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/pathelland/archive/2007/05/16/link-to-life-beyond-distributed-transactions-an-apostate-s-opinion.aspx"&gt;Existe um artigo bastante interessante de Pat Helland&lt;/a&gt; (ex-funcionário da Amazon) onde ele comenta sobre como implementar aplicações massivas e distribuídas em centenas de computadores.&lt;br /&gt;&lt;br /&gt;Ele argumenta que para distribuir aplicações, é necessário separar os "estados" em entidades ("entities"). Entidades seriam uma coleção de dados com uma única chave para sua localização. Exemplos: uma Ordem de Compra (chave OrderId) , um Ítem em Estoque (ItemId), etc.&lt;br /&gt;&lt;br /&gt;Então para considerar uma aplicação "escalável", você não pode assumir que transações atômicas sejam possíveis envolvendo mais de uma entidade. O artigo apresenta o conceito de operações canceláveis (tentativas de operações) como a única forma de manter consistência em ambientes distribuídos.&lt;br /&gt;&lt;br /&gt;O interessante é que de certa forma tanto a Amazon como a Google chegaram em conceitos semelhantes, o que a Google chama de "linha" numa tabela BigTable acaba sendo uma entidade da Amazon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-5405428511690854819?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/P74t_wUHGws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/5405428511690854819/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=5405428511690854819" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5405428511690854819?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/5405428511690854819?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/P74t_wUHGws/o-banco-de-dados-da-google.html" title="O banco de dados da Google" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_c8x6-r--1ho/SFKCyBbBqhI/AAAAAAAAAOE/_lyeMwB3IDw/s72-c/gfs1.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/06/o-banco-de-dados-da-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4BSHs5fip7ImA9WxdQEE8.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-7127171604082982218</id><published>2008-06-09T12:02:00.000-03:00</published><updated>2008-06-09T12:05:59.526-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-09T12:05:59.526-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="datacenter" /><category scheme="http://www.blogger.com/atom/ns#" term="hosted" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="ec2" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Processamento seguro dos dados na Amazon e na Google</title><content type="html">Já comentei sobre como grandes volumes de dados &lt;a href="http://tecnocom.blogspot.com/2008/06/storage-na-amazon-e-na-google.html"&gt;são armazenados de forma segura&lt;/a&gt; pela Amazon e pela Google. Também &lt;a href="http://tecnocom.blogspot.com/2008/06/computao-sob-demanda-da-amazon-ec2.html"&gt;comentei como o processamento ocorre&lt;/a&gt; nos servidores destas empresas.&lt;br /&gt;&lt;br /&gt;Agora temos que analisar como as interações com os sistemas são robustas a ponto de que nenhuma transação seja perdida mesmo com falhas nos servidores dos respectivos datacenters.&lt;br /&gt;&lt;br /&gt;Os serviços S3 da Amazon e o GFS da Google são mecanismos para preservação de estado robustas, mas que não oferecem meios para alteração dos dados armazenados. Então como as transações são armazenadas de forma segura?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_c8x6-r--1ho/SEWIYAvnpKI/AAAAAAAAAN8/h1LETg2ZMys/s1600-h/googlelabs.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_c8x6-r--1ho/SEWIYAvnpKI/AAAAAAAAAN8/h1LETg2ZMys/s320/googlelabs.gif" alt="" id="BLOGGER_PHOTO_ID_5207718490221814946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No  caso da Google a solução é bastante interessante: utilizar do mecanismo de &lt;em&gt;append&lt;/em&gt; em fim de arquivo como uma forma de implementar uma fila FIFO de transações. Ou seja, um "&lt;em&gt;change log&lt;/em&gt;".&lt;br /&gt;&lt;br /&gt;Como isto funcionaria?&lt;br /&gt;&lt;br /&gt;Por exemplo, digamos que tenhamos um arquivo com uma base de informações grandes. Então uma transação é efetuada provocando a alteração lógica de algum elemento.  Esta transação é então armazenada como uma alteração no final de um arquivo separado de "log de alteração".&lt;br /&gt;&lt;br /&gt;Logicamente isto implica que toda consulta agora precisaria consultar a base original e consultar os "logs de alteração" para verificar o valor correto, mas se o "log" não for muito grande não há grandes problemas.&lt;br /&gt;&lt;br /&gt;Para o "log" não crescer sem parar, uma operação em background pode construir num novo arquivo uma segunda base atual com as alterações do "log", ou um novo arquivo com a base original completa contendo também os dados não alterados. O &lt;a href="http://labs.google.com/papers/gfs.html"&gt;paper do GFS&lt;/a&gt; comenta sobre este mecanismo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_c8x6-r--1ho/SEWIKgvnpJI/AAAAAAAAAN0/GL2IZc7Uj0Q/s1600-h/aws.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SEWIKgvnpJI/AAAAAAAAAN0/GL2IZc7Uj0Q/s320/aws.gif" alt="" id="BLOGGER_PHOTO_ID_5207718258293580946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Já a Amazon disponibilizou um outro serviço web chamado &lt;a href="http://www.amazon.com/sqs"&gt;Amazon Simple Queue Service&lt;/a&gt; (Amazon SQS) que implementa filas robustas específicas para o fim de registrar ações, com custos de $0,10 centavos de dólar por 1.000 mensagens para quem desejar desenvolver aplicações sobre este serviço.&lt;br /&gt;&lt;br /&gt;O modo de uso acaba sendo semelhante ao implementado pelo Google, onde algum processo em background gerencia estas alterações armazenadas nas filas para construções de novas bases atualizadas.&lt;br /&gt;&lt;br /&gt;A solução SQS da Amazon acaba sendo uma abstração mais avançada e específica para o registro de eventos e ações.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-7127171604082982218?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/T0rOJhw9sL4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/7127171604082982218/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=7127171604082982218" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7127171604082982218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/7127171604082982218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/T0rOJhw9sL4/processamento-seguro-dos-dados-na.html" title="Processamento seguro dos dados na Amazon e na Google" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_c8x6-r--1ho/SEWIYAvnpKI/AAAAAAAAAN8/h1LETg2ZMys/s72-c/googlelabs.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/06/processamento-seguro-dos-dados-na.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CSHo6cSp7ImA9WxdRF0s.&quot;"><id>tag:blogger.com,1999:blog-12490094.post-3891227272911874305</id><published>2008-06-06T12:03:00.002-03:00</published><updated>2008-06-06T12:09:29.419-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-06T12:09:29.419-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mapreduce" /><category scheme="http://www.blogger.com/atom/ns#" term="hosted" /><category scheme="http://www.blogger.com/atom/ns#" term="amazon" /><category scheme="http://www.blogger.com/atom/ns#" term="ec2" /><title>Computação sob demanda da Amazon: EC2</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_c8x6-r--1ho/SEWIKgvnpJI/AAAAAAAAAN0/GL2IZc7Uj0Q/s1600-h/aws.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_c8x6-r--1ho/SEWIKgvnpJI/AAAAAAAAAN0/GL2IZc7Uj0Q/s320/aws.gif" alt="" id="BLOGGER_PHOTO_ID_5207718258293580946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Além do &lt;a href="http://tecnocom.blogspot.com/2008/06/storage-na-amazon-e-na-google.html"&gt;serviço S3&lt;/a&gt; de storage, a Amazon também oferece o serviço &lt;a href="http://www.amazon.com/ec2"&gt;Elastic Computing Cloud (EC2)&lt;/a&gt; para o provimento de servidores virtuais onde aplicações podem ficar ativas para oferecer serviços pela Internet.&lt;br /&gt;&lt;br /&gt;Segundo a Amazon, o servidor virtual se comporta como um computador x86 de 1,7Ghz, com 1,75GB de RAM, 160GB de disco local, e 250Mb/s de banda de rede.&lt;br /&gt;&lt;br /&gt;O EC2 funciona assim: você primeiro precisa de um AMI (Amazon Machine Images) que é basicamente uma imagem de um disco contendo o sistema operacional e que deve estar armazenado no S3.&lt;br /&gt;&lt;br /&gt;Já existem vários &lt;a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=101"&gt;AMIs públicos&lt;/a&gt; que podem ser usados para testes ou como base para a construção do seu próprio AMI.&lt;br /&gt;&lt;br /&gt;Com o AMI definido, você requisita a iniciação de uma instância através de um web service autenticado que responde o IP que o servidor virtual vai ser encontrado em alguns minutos.&lt;br /&gt;&lt;br /&gt;Após passados estes minutos, o servidor está pronto para usar e pode ser acessado por ssh, pela web, ou qualquer outro protocolo implementado em aplicações instaladas no AMI.&lt;br /&gt;&lt;br /&gt;Não há nenhuma garantia quanto a permanência da instância. O servidor pode sair de operação por problemas de hardware por exemplo e perder todos os dados armazenados no disco local e na RAM. Portanto a Amazon recomenda implementar persistência ou no S3 ou replicada em várias instâncias de servidores virtuais EC2.&lt;br /&gt;&lt;br /&gt;Não há necessidade de acordar nenhum tipo de período de uso e de quantidade de instâncias com a Amazon (dentro dos limites práticos para a Amazon), e você paga apenas $0,10 centavos de dólar por hora-instância consumidos. Uma instância pode ser desativada da mesma maneira que foi iniciada: através de outro web service.&lt;br /&gt;&lt;br /&gt;A Google provavelmente implementa mecanismos parecidos para distribuir suas atividades computacionais, entretanto seu mecanismo não é de conhecimento público. De conhecimento público existe o &lt;a href="http://labs.google.com/papers/mapreduce.html"&gt;modelo de programação MapReduce&lt;/a&gt; que é usado para implementar comutação distribuída e robusta. Com esta abstração, um escalonador de tarefas é capaz de distribuir processamento entre grande quantidades de servidores e garantir sua conclusão.&lt;br /&gt;&lt;br /&gt;O interessante deste serviço é que a Amazon disponibilizou, a qualquer empreendedor motivado, uma solução de baixo custo para processamento sob demanda. Solução esta que permite construção de clusters massivos de usos temporários, sem a necessidade de nenhum investimento de hardware ou de infraestrutura de suporte de TI.&lt;br /&gt;&lt;br /&gt;Ninguém precisa ficar com inveja da Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12490094-3891227272911874305?l=tecnocom.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/tecnocom/~4/bEjpZ1KUwLo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tecnocom.blogspot.com/feeds/3891227272911874305/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=12490094&amp;postID=3891227272911874305" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/3891227272911874305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12490094/posts/default/3891227272911874305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/tecnocom/~3/bEjpZ1KUwLo/computao-sob-demanda-da-amazon-ec2.html" title="Computação sob demanda da Amazon: EC2" /><author><name>Fabio Ferrari</name><uri>http://www.blogger.com/profile/11496095503931830357</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="04432123713186675317" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_c8x6-r--1ho/SEWIKgvnpJI/AAAAAAAAAN0/GL2IZc7Uj0Q/s72-c/aws.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://tecnocom.blogspot.com/2008/06/computao-sob-demanda-da-amazon-ec2.html</feedburner:origLink></entry></feed>
