<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13843503</id><updated>2011-12-01T19:03:28.949-02:00</updated><category term='linux'/><category term='dreams'/><category term='openbsd'/><category term='esopix'/><category term='tablets'/><category term='unix'/><category term='netbook'/><category term='ssl'/><category term='eventos'/><category term='positivo'/><category term='fedora'/><category term='defeito'/><category term='freenode'/><category term='fábulas'/><category term='mobo white'/><category term='xchat'/><category term='tchelinux'/><title type='text'>Olivé's Random Bits on Life, Yoga and Unix</title><subtitle type='html'>In this blog I intend to ramble on the two things I really enjoy talking and reading about: Unix and Unix-like Operating Systems, and Yoga and similar philosophies that try to put some meaning into this weird existance. OK, to be honest, I'll ramble on any technical crap that happens to be on my mind, and any profound-looking thing I can come up with. But it should be entertaining, if not insightful.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13843503.post-6271485633720084685</id><published>2011-11-02T01:40:00.002-02:00</published><updated>2011-11-02T02:13:22.485-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dreams'/><category scheme='http://www.blogger.com/atom/ns#' term='tablets'/><title type='text'>Someone please create a Multi-Tablet User Interface</title><content type='html'>With tablets becoming an increasingly viable option for manipulating all kinds of information, and with their prices coming down so much that we'll soon have people with multiple tablets (perhaps you have your new tablet, your old/smaller tablet and your phone (mini-tablet)), it is about time someone create a way to operate on all tablets at the same time, with them cooperating and alternating their function between data visualization, selection and specialized controls to affect the selected data.&lt;br /&gt;&lt;br /&gt;Suppose I like to design race cars (really a supposition, since I don't know the first thing about it) and I'm having a coffee at my preferred café. The sinuous forms of the vapour coming out of the espresso inspire me and I fetch my main 12" tablet and start sketching with the digitizer pen (ThinkPad tablet has it) until I create a beautiful shape. I decide this could become a serious design, so I fetch my older, 7" tablet and pair it with the larger tablet as an additional control pad.&lt;br /&gt;&lt;br /&gt;In this moment, I am able to select the shape I just drew on the larger tablet, and the smaller tablet immediately shows me the manipulations I can do with this object. Perhaps some color cubes, shading, texture, etc. Then I select another object on the larger tablet, and the smaller tablet again changes with inputs and manipulators for that kind of object. Perhaps the whole of it becomes a smart keyboard for me to describe my design, typing text into the larger tablet.&lt;br /&gt;&lt;br /&gt;Now I want to easily rotate the shape around and watch it under different kinds of lighting. My phone has a digital compass, accelerometer and other such nice controls already, so I get my phone out of my pocket and pair it with the other tablets. I can immediately rotate my phone on the table and the design on the larger pad rotates accordingly. At the same time that I rotate or tilt the phone (and the design), I can slide my finger around on the 7" tablet to change how the lighting is positioned to achieve the effects I want to visualize.&lt;br /&gt;&lt;br /&gt;Is this too difficult to implement? Certainly not, as we have everything we need, tablets and phones with bluetooth. Just throw the necessary bluetooth protocol in there for the pairing and exchanging of input events, and make applications aware of the fact they can ask the other paired tablets to represent any kind of input control they want. Or allow one tablet to "export" input controls into the others so that the other tablets would run those controls and feed the input events back to the originating tablet. I really think it would be easy to sit down and implement this kind of stuff with existing technology right now.&lt;br /&gt;&lt;br /&gt;It is funny that months ago I dreamt about a computer made of transparent sheets of touchscreen-like material, and one could "unfold" it to allow for a larger operating environment, or even "rip" parts of it for smaller pieces of dedicated control pads. Each part of the remaining surface was able to present information and receive touch input, so you could start with a screen, but unfold it (like opening a transparent book) and have the lower portion present a keyboard, and then perhaps unfold that part again to the side, and that side-screen would present additional controls and input such as digital sliders and knobs. And then now I suddenly realize we can actually come fairly close to that with a Multi-Tablet User Interface. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-6271485633720084685?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/6271485633720084685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=6271485633720084685&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6271485633720084685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6271485633720084685'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2011/11/someone-please-create-multi-tablet-user.html' title='Someone please create a Multi-Tablet User Interface'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-5376038682653865071</id><published>2011-05-26T13:20:00.007-03:00</published><updated>2011-05-26T13:55:48.147-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fedora'/><title type='text'>Fedora "Face" header for email</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-s-XD1tjo_0k/Td6Ap18SbcI/AAAAAAAAADw/u7QauvjXb1M/s1600/FedoraFace.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 48px; height: 48px;" src="http://2.bp.blogspot.com/-s-XD1tjo_0k/Td6Ap18SbcI/AAAAAAAAADw/u7QauvjXb1M/s200/FedoraFace.png" alt="" id="BLOGGER_PHOTO_ID_5611063642093153730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Express your love for Fedora in every email you send! &lt;a href="http://quimby.gnus.org/circus/face/"&gt;Add a color "Face:" header&lt;/a&gt; in your email client using a &lt;a href="http://olive.homeunix.org:8080/FedoraFace.png"&gt;very optimized 48x48 Fedora logo&lt;/a&gt;. The file is 628 bytes, and expands to 846 bytes in total when base64 encoded and after adding the "Face: " header name.&lt;br /&gt;&lt;br /&gt;If your email client does not have a way to insert a Face header explicitly, but lets you add a custom header, here is the line claws-mail created for me:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;Face:&lt;br /&gt;iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4&lt;br /&gt;c6QAAADNQTFRFgE1yJD1tKUFxLEh9MlOOP1aEOmetS2eaO263VmyVWITBbo&lt;br /&gt;GkjaTHrr/Y0dzo7fL1/f/89Nam/gAAAAF0Uk5TAEDm2GYAAAABYktHRACIB&lt;br /&gt;R1IAAAACXBIWXMAAAUzAAAFMwHIE+vbAAAAB3RJTUUH2wUaDwEFIUT8NAAA&lt;br /&gt;Aa1JREFUSMetlumygyAMhSVA2GR5/6e9KIsgoHbmnh+dTns+EoEkbtsoqNo&lt;br /&gt;+CG760f6CwEJf7SRphQx24FwpxTklU2Lwc2NdiHI7pxNiWF7ZULTjSAz5G1&lt;br /&gt;/9wWlktCeGfExoZKWUrIsx+FVe3zvnvNUoZZ/VkJBLdmuUMkbLQ9gktUjIG&lt;br /&gt;3qeA8WTaEIMQNogk84MMnE9xeCn5xO46xdWcoI5IHwKcK2AbU6w2CMxA2AK&lt;br /&gt;pEPj/wXAO9A8dCTegbKtc+A4qR5oD+4GRAflUQkw8TuNSvaSUQNQhtL60Mv&lt;br /&gt;vN38FjoVwv/svgkEPnIHRhlH2/IdBD9AUdg/zCDWfAiS/lNr6Q9l6yiJGO+&lt;br /&gt;mBvBEYK1fExpLL3xwSNLpJ19SuhFhuXPUcahvrmmD8wLRvZHk1bkA+eQKfg&lt;br /&gt;T7AI7A1APwIjLd10fcnKaUbAi9AfWiS2pgji8Fy31aSA9gHgOULnA4q921F&lt;br /&gt;FpOrXg1EJWLx5JKwy0lXihy1O1RunlhOxtIWdFcMZj1Jc3lK7ZoiePCXimP&lt;br /&gt;yiuDU06SuPUBkwhn+ONib33kcN4rTt/cAeNYPbxhz9x/7pCg2het4mQAAAA&lt;br /&gt;BJRU5ErkJggg==&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;OK, this means you'll bloat every email you send with another 846 bytes. Here's how you can compensate:&lt;br /&gt;1. Do not send HTML email. Ever.&lt;br /&gt;2. Do not use a signature containing all your personal information.&lt;br /&gt;3. Do not use large/useless disclaimers in your signature.&lt;br /&gt;4. Make them count! Do not send crap or useless email. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-5376038682653865071?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/5376038682653865071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=5376038682653865071&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5376038682653865071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5376038682653865071'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2011/05/fedora-face-header-for-email.html' title='Fedora &quot;Face&quot; header for email'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-s-XD1tjo_0k/Td6Ap18SbcI/AAAAAAAAADw/u7QauvjXb1M/s72-c/FedoraFace.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-7159123724697739890</id><published>2010-06-09T12:06:00.002-03:00</published><updated>2010-06-09T12:11:59.473-03:00</updated><title type='text'>Voe GOL (CONTRA)</title><content type='html'>Tentando comprar uma passagem da GOL, noto que uma checkbox misteriosa aparece e some em uma fração de segundo no último passo da compra. Digito várias vezes o código de confirmação, preocupado com a checkbox sumida, e o site sempre retorna pro mesmo ponto do processo de compra.&lt;br /&gt;&lt;br /&gt;A ajuda online depois de algumas bobagens informa a barbada:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;AtendenteGol 11:58:17 Sr.Fabio alguns navegadores bloqueiam o acesso ao site da GOL, se caso possuir navegador como NETSCAP peço que mude para o navegador Microsoft Internet Explorer. Para que consiga efetuar os procedimentos pelo site sem que haja erros.&lt;br /&gt;&lt;br /&gt;Fabio 11:59:19 não posso usar Internet Explorer, pois não uso Windows há mais de 10 anos.&lt;br /&gt;&lt;br /&gt;Fabio 11:59:50 o site da Gol deve suportar qualquer cliente, é uma pena que eu tenha que voar por outra linha aérea porque vocês não fazem um site compatível com outros browsers.&lt;br /&gt;&lt;br /&gt;AtendenteGol 12:00:28 O site da Gol não é compatível com o navegador utilizado.&lt;br /&gt;&lt;br /&gt;Fabio 12:01:02 OK, obrigado pela informação.&lt;br /&gt;&lt;/blockquote&gt;Não precisa dizer mais nada, né?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-7159123724697739890?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/7159123724697739890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=7159123724697739890&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/7159123724697739890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/7159123724697739890'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2010/06/voe-gol-contra.html' title='Voe GOL (CONTRA)'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-5169594769548411192</id><published>2010-03-13T00:44:00.008-03:00</published><updated>2010-03-31T08:55:13.537-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='positivo'/><category scheme='http://www.blogger.com/atom/ns#' term='defeito'/><category scheme='http://www.blogger.com/atom/ns#' term='mobo white'/><title type='text'>Positivo Informática: netbook ótimo, administração péssima</title><content type='html'>Faz algum tempo (para ser exato em 27/5/2009), depois de muito pensar e revisar vários modelos de netbooks disponíveis, eu comprei um Positivo Mobo White 1050. Eu achei uma das melhores opções de netbooks disponíveis, com teclado ABNT2 incluindo uma tecla para / e ?, ao invés de fazer aquela coisa ridícula de AltGr+QWE que se vê por aí.&lt;br /&gt;&lt;br /&gt;O hardware é o típico netbook baseado em Atom, pequeno e silencioso mas com boa velocidade e uma confortável tela de 10". Infelizmente veio com uma licença de Windows XP, porque não achei o modelo 1020 que era idêntico porém sem a tal licença. Prontamente instalei Fedora nele, e tudo funcionou perfeitamente. O bichinho se tornou meu companheiro em casa, no trabalho, em viagens, em palestras, congressos e tudo mais.&lt;br /&gt;&lt;br /&gt;Eu passei a recomendar o Mobo White pra todas as pessoas que me perguntavam sobre netbooks, principalmente para rodar Fedora Linux, já que tudo funciona super bem. Não recomendo mais.&lt;br /&gt;&lt;br /&gt;Mais pro final de 2009, o mobo começou a apresentar um defeitinho chato: o botão esquerdo do touchpad clica sozinho. De início acontecia só de vez em quando, e eu achei que era algum detalhe mecânico que ia se resolver com o próprio uso (talvez um "break-in" para touchpads). Era intermitente, então quando acontecia me incomodava mas logo parava e eu acabava não pensando em levar na assistência.&lt;br /&gt;&lt;br /&gt;Só que com o tempo começou a ser cada vez mais frequente, e aí no uso do mobo algumas janelas se moviam sozinhas, ou se fechavam, ou ele clicava em algum botão e não desclicava mais. Aí incomodou mesmo, e pensei em logo levar pra assistência técnica.&lt;br /&gt;&lt;br /&gt;Levei numa assistência técnica autorizada no dia 12/1/2010. Constataram que teria que trocar mesmo a peça do touchpad e fizeram o pedido da peça pra Positivo. Aguardei semanas e a assistência técnica nunca entrou em contato. Eu conversei com eles, e me disseram que infelizmente a Positivo não estava respondendo para eles também, mas que tinham sim feito o pedido da peça e estavam tentando ver com a Positivo qual era a previsão de envio.&lt;br /&gt;&lt;br /&gt;No dia 23/2/2010, mais de 30 dias depois de eu ter levado o mobo na assistência técnica, me cansei de ficar esperando e entrei em contato eu mesmo com a Positivo. Depois de uns 30 minutos no telefone, me disseram que tinham aberto uma notificação no departamento de Gestão do Consumidor, e pegaram meus telefones e email pessoal para voltar a entrar em contato. A esta altura, depois de 30 dias sem resolução, eu já tinha direito a um equipamento novo.&lt;br /&gt;&lt;br /&gt;A Positivo nunca entrou em contato comigo, nem mandou a peça para a autorizada local. Nesta sexta-feira, dia 12/3/2010, completaram-se 60 dias do pedido da peça em aberto. Fazem MAIS de 60 dias que estou com o problema, mas tudo bem. Oficialmente, eu reclamei em 12/1/2010. Então fazem 60 dias.&lt;br /&gt;&lt;br /&gt;Nesta sexta-feira eu liguei de novo para a Positivo, e em 40 minutos no telefone, eu percebi que ela é uma das empresas mais mal administradas e incompetentes que eu já tive contato. Não sabiam me informar sobre o pedido da peça, não sabiam me dizer porque não entraram em contato comigo, não tinham como colocar na linha alguém que pudesse resolver o problema.&lt;br /&gt;&lt;br /&gt;O máximo que eu consegui foi conversar com a supervisora do tele-atendimento. Ela repetiu o mesmo que o atendente havia dito, o que significa que ser supervisora não dá a ela nenhuma habilidade extra para resolver o problema do consumidor. O tele-atendimento não pode resolver nada, pode apenas agendar para que alguém de lá entre em contato comigo.&lt;br /&gt;&lt;br /&gt;Notem que eles já haviam agendado um contato em 23/2/2010, mas não ligaram. Eu não tenho nenhuma garantia que dessa vez eles vão ligar, já que o precedente estabelecido é que eles não ligam e nem sabem o que está acontecendo. Dessa vez eles "abriram uma notificação com o departamento jurídico", o que pra mim não diz nada. É mais um processo interno com os mesmos incompetentes gerenciando, então eu realmente acredito que a Positivo não vai me ligar nem mandar email, e é claro que já vou no Procon na segunda-feira.&lt;br /&gt;&lt;br /&gt;O que mais me incomoda é que eles disponibilizam um tele-atendimento que não tem poder de resolver nada. É o mesmo que reclamar pro vizinho. Aliás, é pior. Se eu reclamar pro vizinho, pelo menos o vizinho não vai comprar netbooks da Positivo e assim não vai cair nessa mesma armadilha.&lt;br /&gt;&lt;br /&gt;Sendo assim, eu faço uso da única coisa que ainda posso fazer: falar com meus "vizinhos" internet a fora.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;NÃO COMPREM COMPUTADORES DA POSITIVO.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Podem ser bonitos, rápidos, práticos e talvez até ter um bom preço. Mas se precisarem de uma peça de reposição EM GARANTIA, um botão de touchpad que seja, esqueçam. Para todos os efeitos práticos ELES NÃO TEM GARANTIA.&lt;br /&gt;&lt;br /&gt;Ah, e um detalhe para fechar com chave de ouro: eu não sou o único. Um amigo meu, de outra cidade, também comprou um mobo white 1050 que com o tempo &lt;a href="http://kenjiro.blogspot.com/2010/01/new-netbook.html"&gt;apresentou o mesmo defeito&lt;/a&gt;. Ele passou pela mesma tortura com a Positivo, que no fim depois de uns 3 meses mandou um equipamento novo pra ele. Espero ter a mesma sorte.&lt;br /&gt;&lt;br /&gt;Se você está lendo isso e tem alguma posição gerencial na Positivo Informática, demita-se. Dê sua vaga para alguém que tenha mais vontade de fazer um trabalho bem feito, e que se importe com os seus clientes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;: &lt;/span&gt;hoje, segunda-feira dia 15/3/2010 às 10h00 me ligaram da Positivo, dizendo que enviarão um netbook novo para substituir este com defeito. A mensagem final é: se precisar de garantia da Positivo, prepare-se para fazer muito barulho até ser atendido. Ligue várias vezes, mande várias vezes a mesma reclamação usando o formulário da página Fale Conosco (para todos os departamentos), etc. Quando o barulho fica alto demais, eles se incomodam e resolvem.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DP-fvWG3El4/S6Lu--9NeVI/AAAAAAAAACI/hyVi8lI7C1c/s1600-h/Screenshot-Re_SITE_POSINFO_FALE_CONOSCO.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_DP-fvWG3El4/S6Lu--9NeVI/AAAAAAAAACI/hyVi8lI7C1c/s320/Screenshot-Re_SITE_POSINFO_FALE_CONOSCO.png" alt="" id="BLOGGER_PHOTO_ID_5450181264890755410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;quarta-feira dia 17/3/2010 recebi um email de feedback das dúzias de reclamações que eu postei no link Fale Conosco no site da Positivo Informática. De início parecia que queriam me avacalhar, mas uma olhada com mais cuidado mostrou que me enviaram um email com a codificação declarada incorretamente. Olhando o "fonte" da mensagem em HTML dava pra ler. A visualização normal saía em "Klingon" como a imagem do lado. Que beleza, não?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desfecho:&lt;/span&gt; ontem, 30/3/2010 recebi um mobo white 2050 em troca do 1050 estragado. &lt;span style="font-weight: bold;"&gt;Prós:&lt;/span&gt; ganhei um modem 3G embutido, e um disco maior. &lt;span style="font-weight: bold;"&gt;Contra:&lt;/span&gt; teclado horrível. O do 1050 parecia um teclado de notebook encolhido; este parece um teclado de calculadora aumentado. Por enquanto estou me adaptando digitando muito mais devagar. Certamente eu não teria comprado um 2050 espontaneamente depois de ver esse teclado. Ah, e não tem como saber se o Caps Lock está ativado, não tem led. E é fácil esbarrar nele, já que o shift da esquerda deve ter 1cm de largura. Mas tudo bem, pelo menos eles mantiveram a palavra, uns 80 dias depois.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-5169594769548411192?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/5169594769548411192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=5169594769548411192&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5169594769548411192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5169594769548411192'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2010/03/positivo-informatica-netbook-otimo.html' title='Positivo Informática: netbook ótimo, administração péssima'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_DP-fvWG3El4/S6Lu--9NeVI/AAAAAAAAACI/hyVi8lI7C1c/s72-c/Screenshot-Re_SITE_POSINFO_FALE_CONOSCO.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-6973241735493942589</id><published>2010-02-11T15:06:00.008-02:00</published><updated>2010-02-11T16:37:03.230-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='xchat'/><category scheme='http://www.blogger.com/atom/ns#' term='freenode'/><title type='text'>Acessando a FreeNode com SSL no xchat</title><content type='html'>Opa, essa é barbada, então resolvi escrever rapidinho a respeito. Agora não preciso mais me sentir envergonhado por causa da minha senha ridícula no nickserv!&lt;br /&gt;&lt;br /&gt;Desde que &lt;a href="http://blog.freenode.net/2010/01/migration-to-new-ircd/"&gt;migrou para servidores novos&lt;/a&gt;, a FreeNode permite o acesso via SSL na porta 7000. Para não ter que clicar naquela caixinha "accept invalid SSL certificates", o que seria meio besta, é necessário baixar o &lt;a href="http://crt.gandi.net/GandiStandardSSLCA.crt"&gt;certificado que eles usam&lt;/a&gt; e instalar em um local em que o xchat o encontre. Cliquem com o botão direito sobre o link, e mandem salvar. Se clicarem direto com o esquerdo, o browser provavelmente vai querer instalar o certificado nele mesmo. :)&lt;br /&gt;&lt;br /&gt;O xchat (ou será que é padrão da openssl?) acessa os certificados que estiverem em /etc/pki/tls/certs/ca-bundle.crt, que é um arquivão contendo vários certificados raiz de autoridades certificadoras. Pelo que vi, os cerificados estão todos concatenados neste arquivo em formato PEM. O certificado da CA usado pela FreeNode veio em formato DER, então é necessário convertê-lo para PEM com o comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;$ openssl x509 -in GandiStandardSSLCA.crt -inform DER  &gt; GandiStandardSSLCA.pem&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Depois disso é só concatenar no /etc/pki/tls/certs/ca-bundle.crt, o que eu fiz com:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;$ sudo vim /etc/pki/tls/certs/ca-bundle.crt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Shift+G (vai pro final do arquivo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;:r GandiStandardSSLCA.pem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;:wq&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora basta abrir a configuração da rede FreeNode no xchat, clicar em "Use SSL for all the servers on this network". Aproveite pra verificar que a caixinha "Accept invalid SSL certificate" está DESMARCADA. Clique no servidor "irc.freenode.net", depois em Edit e mude para "irc.freenode.net/7000" para que o xchat conecte na porta 7000.&lt;br /&gt;&lt;br /&gt;Depois disso é Close, desconectar, reconectar e pronto!&lt;br /&gt;&lt;br /&gt;Verifique se nas primeiras mensagens durante a conexão aparecem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;* Looking up irc.freenode.net&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;* Connecting to chat.freenode.net (208.71.169.36) port 7000...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;* * Certification info:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Subject:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     OU=Domain Control Validated&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     OU=Gandi Standard Wildcard SSL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     CN=*.freenode.net&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Issuer:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     C=FR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     O=GANDI SAS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*     CN=Gandi Standard SSL CA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Public key algorithm: rsaEncryption (2048 bits)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Sign algorithm sha1WithRSAEncryption&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Valid since Jan 13 00:00:00 2010 GMT to Jan 13 23:59:59 2011 GMT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;* * Cipher info:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;*   Version: TLSv1/SSLv3, cipher DHE-RSA-AES256-SHA (256 bits)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pronto, não precisa mais ter vergonha se alguém sniffar em um cyber-café. :)&lt;br /&gt;&lt;br /&gt;Update: o &lt;a href="http://twitter.com/jczucco"&gt;Zucco&lt;/a&gt; me avisou que ele apenas colocou o arquivo &lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;GandiStandardSSLCA.pem&lt;/span&gt;&lt;/span&gt; dentro do diretório &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;~/.xchat2/&lt;/span&gt;&lt;/span&gt; e já funcionou. Eu devo ter lido alguma documentação antiga do xchat...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-6973241735493942589?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/6973241735493942589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=6973241735493942589&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6973241735493942589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6973241735493942589'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2010/02/acessando-freenode-com-ssl-no-xchat.html' title='Acessando a FreeNode com SSL no xchat'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-9052213872493053145</id><published>2009-08-18T14:03:00.004-03:00</published><updated>2009-08-18T15:31:14.869-03:00</updated><title type='text'>"Bispo" Edir Macedo</title><content type='html'>Procurando bem os significados das palavras, fica fácil entender que tipo de "bispada" o Edir Macedo anda aprontando:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bispar&lt;/span&gt;¹&lt;br /&gt;bis.par¹&lt;br /&gt;(bispo+ar²) &lt;span style="font-style: italic;"&gt;vtd&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; Avistar ao longe; divisar, lobrigar. &lt;span style="font-style: italic;"&gt;vtd&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Surripiar.&lt;/span&gt; &lt;span style="font-style: italic;"&gt;vpr&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Escapar-se, esgueirar-se.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Acho que a Igreja Universal do Reino do Dinheiro (digo, de Deus) está mesmo é se tornando um grande bispote.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bispote&lt;/span&gt;&lt;br /&gt;bis.po.te&lt;br /&gt;&lt;span style="font-style: italic;"&gt;sm&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;ingl&lt;/span&gt; &lt;span style="font-style: italic;"&gt;pisspot&lt;/span&gt;) &lt;span style="font-style: italic;"&gt;gír&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Penico, urinol.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;amp;palavra=bispar"&gt;http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;amp;palavra=bispar&lt;/a&gt;&lt;br /&gt;&lt;a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;amp;palavra=bispote"&gt;http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;amp;palavra=bispote&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-9052213872493053145?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/9052213872493053145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=9052213872493053145&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/9052213872493053145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/9052213872493053145'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2009/08/bispo-edir-macedo.html' title='&quot;Bispo&quot; Edir Macedo'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-6841135484167499576</id><published>2009-07-07T16:10:00.005-03:00</published><updated>2010-03-19T00:15:27.430-03:00</updated><title type='text'>Wireless no positivo mobo white</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Update 2010-03-18:&lt;/span&gt; o óbvio finalmente me acertou em cheio: rpmfusion, yum install kmod-staging. Pronto. :)&lt;br /&gt;&lt;br /&gt;Opa! Minha obsessão por escrever posts arrumadinhos faz com que eu nunca blogue nada. Vou tentar me livrar disso, e aqui vai um post direto de um email que escrevi no XAPlivre.&lt;br /&gt;&lt;br /&gt;Pra quem tem mobo white ou outros clones/OEM do MSI Wind que possuem wireless rtl8187se (rodem lspci num terminal pra conferir), o site abaixo contém os fontes de um driver livre que compila sem erros e funciona muito bem.&lt;br /&gt;&lt;br /&gt;http://code.google.com/p/msi-wind-linux/&lt;br /&gt;&lt;br /&gt;Procurem os fontes em tar.bz2 nos downloads da página e instalem o pacote kernel-devel para obter os headers C necessários para compilar módulos de terceiros para o kernel instalado. Pelo menos no Fedora o nome do pacote é kernel-&lt;br /&gt;devel.&lt;br /&gt;&lt;br /&gt;Descompactando o tar.bz2, basta entrar no diretório rtl8187se_coffee e rodar o script makedrv para compilar os módulos, e depois rodar o script wlan0up como root. Este último vai inserir os módulos no kernel em execução e a partir daí depois de alguns segundos o Network Manager já vai reconhecer a placa wireless.&lt;br /&gt;&lt;br /&gt;Fora o wireless, cujo driver ainda não está upstream, o Fedora 11 detecta e roda muito bem todo o hardware do mobo white. A bateria tem durado um pouco mais de 4h, mesmo com uso não trivial. Uma ótima combinação!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-6841135484167499576?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/6841135484167499576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=6841135484167499576&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6841135484167499576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6841135484167499576'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2009/07/wireless-no-positivo-mobo-white.html' title='Wireless no positivo mobo white'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-6560692377851800039</id><published>2008-11-18T00:22:00.003-02:00</published><updated>2008-11-18T01:15:17.676-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fábulas'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='esopix'/><title type='text'>Fábulas de Esopix</title><content type='html'>Este post tem umas três partes que poderiam ter sido postadas separadamente, mas acho que não é assim que a gente funciona... então vai junto mesmo. :)&lt;br /&gt;&lt;br /&gt;Eu sou fã de livros de bolso, os pocket books como os da &lt;a href="http://www.lpm.com.br/"&gt;L&amp;amp;PM Pocket&lt;/a&gt; e da &lt;a href="http://www.martinclaret.com.br/"&gt;Martin Claret&lt;/a&gt;. De certa forma, dá pra se argumentar que os pocket books são os precursores dos netbooks que estão invadindo o mercado hoje em dia, já que desde a segunda guerra os pocket books se tornaram sinônimo de informação com mobilidade, praticidade e preço baixo. Numa época em que os livros eram feitos em encadernações luxuosas, pesadas e caras (veja como se presta a representar notebooks tradicionais), de repente surgiu a idéia de criar livros mais simples e baratos para a população de baixa renda (OLPC, anyone?). Com o tempo, a popularização dos pocket books foi tão grande que qualquer banca de revistas os tinha à venda (Mobo nas casas Bahia e assemelhadas?), e então começaram a surgir as coleções de pocket books "de luxo", com uma encadernação mais refinada, porém ainda simples, e papel mais branco e resistente (com certeza quem leu até aqui consegue visualizar MSI Winds, Acer Aspire Ones e Mobo Whites da atualidade).&lt;br /&gt;&lt;br /&gt;Acho que o papel dos livros de bolso na disseminação da cultura e da educação (instrução?) têm o mesmo papel que os netbooks carregados de software livre hoje em dia. O bom é que os livros de bolso não precisam de bateria e têm cheirinho de livro! Quer saber o que me dar de natal? Faça random(400) e me dê o livro de bolso com o número sorteado da coleção "A Obra Prima de Cada Autor" da Martin Claret. :D&lt;br /&gt;&lt;br /&gt;Há algumas semanas eu e a Fran estávamos no ótimo Café Brasiliano, aqui em Chapecó, e lá tem estandes tanto da Martin Claret quanto da L&amp;amp;PM (é uma cachaça). Enquanto tomávamos café, eu percebi dois livros bem interessantes: Fábulas de La Fontaine (nº 200) e Fábulas de Ésopo (nº 182). Ambos possuem um pouco da história das fábulas, dos seus autores, e uma explicação a cerca do gênero literário que geralmente se encontra passando por fábula. É interessante saber que inicialmente poucas fábulas eram escritas para crianças, ao contrário do que se pensa. A grande maioria das fábulas se prestava a transmitir algum conhecimento moral ou simples experiência de vida para adultos se tornarem também menos obtusos (e na verdade, algumas me parecem puramente manipulação da massa iletrada).&lt;br /&gt;&lt;br /&gt;A fábula é um misto de conto, provérbio e poema. Sempre tem uma lição de moral, mas para transmitir a lição faz uso de uma narrativa (se não tivesse a narrativa seria um provérbio). A narrativa pode ser em prosa (conto) ou em verso (poema). Um dos aspectos mais interessantes é o universo ilimitado dos personagens, já que na fábula tudo tem vida. Se fossem apenas narrativas sobre humanos com uma lição de moral, seriam parábolas. ;-) Mas na fábula se pode ver um musgo conversando com uma pedra, ou um deus e um mortal, ou ainda um pássaro, uma raposa e uma roseira. Essa liberdade faz com que o formato seja reconfortante, por nos levar de volta a um universo infantil e fantasioso, e até surpreendente, já que nunca imaginamos quem (ou o quê) mais sairá do plano dos objetos e se tornará sujeito de alguma ação para daí dar um sentido mais profundo para a narrativa (a "moral da história").&lt;br /&gt;&lt;br /&gt;Pois bem, e o título desse post, afinal, o que significa?&lt;br /&gt;&lt;br /&gt;Tenho lido várias fábulas de Ésopo e de La Fontaine, e um dia arrumando as caixinhas de CDs do &lt;a href="http://openbsd.org/"&gt;OpenBSD&lt;/a&gt; na estante, de repente me caiu uma ficha daquelas: faz anos que os caras do OpenBSD vêm contando pequenas fábulas em cada uma das suas edições! A cada edição vem uma historinha no encarte da caixinha, contando com personagens (que são animais) um pouco do que aconteceu no projeto e no mundo do software livre nos meses anteriores à edição.&lt;br /&gt;&lt;br /&gt;De repente me deu uma baita vontade de criar pequenas histórias nesse formato, usando personagens que representem projetos de software livre e outros players do mundo Unix em geral, de forma a divertir e informar (ou confundir) os leitores. Aí se fez necessário criar um pseudônimo para assinar essas histórias, e surgiu o Esopix. :D&lt;br /&gt;&lt;br /&gt;Esopix foi um admirador do mundo Unix que viveu no final do século XX e início do século XXI e, temendo que as gerações mais novas pudessem esquecer as lições do passado, passou a documentar passagens que representassem a essência daquilo que "os antigos" aprenderam desde os tempos imemoriais. Ele não era muito experiente, e nem tudo o que ele escrevia era verdadeiro ou mesmo correto, mas pelo menos ele tentou deixar um legado em prosa ou verso das lições mais importantes que havia aprendido.&lt;br /&gt;&lt;br /&gt;Espero que gostem do resultado... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-6560692377851800039?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/6560692377851800039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=6560692377851800039&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6560692377851800039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/6560692377851800039'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2008/11/fbulas-de-esopix.html' title='Fábulas de Esopix'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-7518772317180094022</id><published>2008-11-11T23:19:00.004-02:00</published><updated>2008-11-11T23:46:17.469-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netbook'/><category scheme='http://www.blogger.com/atom/ns#' term='openbsd'/><title type='text'>OpenBSD no EeePC</title><content type='html'>Logo antes do evento TcheLinux em Santa Maria, o Filipe Rosset passou aqui em casa e me deixou emprestado um EeePC 701 (aqueles pretinhos minúsculos originais, certamente projetados por oftalmologistas) pra mim fuçar e eu resolvi instalar OpenBSD nele.&lt;br /&gt;&lt;br /&gt;Baixei um snapshot para i386 (eu procuro comprar as caixinhas de CDs para ajudar (e porque são bonitas e divertidas) mas sempre instalo snapshots), botei num pendrive, bootei o pendrive e instalei direto no disquinho SSD dele (acho que é SSD né? não lembro direito). Foi até chato, instalou sem nenhum problema. O único ajuste necessário foi desabilitar o suporte a APM (config -ef /bsd; disable apm; quit), já que o BIOS do EeePC suporta tanto APM quanto ACPI mas na verdadade algumas coisas só funcionam bem com o ACPI mesmo e o APM fica atrapalhando.&lt;br /&gt;&lt;br /&gt;Como era de se esperar, a WiFi Atheros não funcionou, e eu achei que a webcam funcionaria, mas também não funfou. Plugando outra WiFi em uma portinha USB o bichinho ficou bem divertido.&lt;br /&gt;&lt;br /&gt;O que me lembrou disso ontem foi ver um &lt;a href="http://marc.info/?l=openbsd-cvs&amp;amp;m=122626173128530&amp;amp;w=2"&gt;commit&lt;/a&gt; no OpenBSD habilitando o suporte a modo bulk no driver de webcams USB, o que fez a câmera do EeePC 701 funcionar. Com as recentes atualizações no driver de DRM no kernel e no X, o EeePC teria também aceleração 3D por default (sem configurar nada). Só falta aquela porcaria de Atheros proprietária.&lt;br /&gt;&lt;br /&gt;Juntando também o recente servidor de som nativo, com conversão automática entre formatos de múltiplas streams, o OpenBSD está ficando cada vez mais apetitoso no desktop... e acho que fica ótimo num netbook, por ser simples, completo e enxuto.&lt;br /&gt;&lt;br /&gt;Estou curioso para ver como os snapshots mais recentes do OpenBSD se comportam num Acer Aspire One. Alguém discorda que os AA1 são os melhores netbooks atuais?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-7518772317180094022?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/7518772317180094022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=7518772317180094022&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/7518772317180094022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/7518772317180094022'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2008/11/openbsd-no-eeepc.html' title='OpenBSD no EeePC'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-2975594762881810942</id><published>2008-11-10T23:39:00.004-02:00</published><updated>2008-11-11T01:37:32.947-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tchelinux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>TcheLinux Porto Alegre 2008</title><content type='html'>"O evento foi tão bom que vou começar a blogar de novo por causa dele."&lt;br /&gt;&lt;br /&gt;Mas bah! Me aventurei em uma viagem bate-e-volta para passar o sábado passado em Porto Alegre, saindo de Chapecó às 23h de sexta e chegando em POA às 5h30 da manhã de Sábado. Eu e o Filipe Rosset, bom amigo aqui de XAP que anda se enveredando pelo TcheLinux e pelo seu irmão caçula (e bem recente) XAPlivre. Chegamos na rodoviária, tomamos café da manhã e fomos pra PUC. Chegamos lá umas 6h30, acho. Fomos os primeiros a chegar e causar espanto nos guardas da PUC (um com chapéu vermelho e o outro com camiseta de pinguim), mas logo mais gente foi chegando, fomos nos apresentando (para os novos) ou botando os papos em dia (para os velhos conhecidos).&lt;br /&gt;&lt;br /&gt;Como pra voluntário do TcheLinux não tem moleza, antes de termos um chimarrão pronto já estávamos arrastando mesas, abrindo caixas, ajudando a organizar a lojinha, o local para guardar os donativos, colando cartazes, preparando crachás, etc. Finalmente chega o Douglas Landgraf com uma bomba de chimarrão (pô Filipe, essa foi triste) e depois de uns mates o cérebro sai do modo uni-neurônio. Começou a chegar gente pra fazer inscrição, começaram a chegar donativos, e eu lembrei que obviamente ainda tinha que terminar minhas apresentações pra duas palestras (ainda bem que eram só à tarde).&lt;br /&gt;&lt;br /&gt;Começou a encher de gente, vários amigos chegando, colegas do trabalho atual, de outros trabalhos antigos, e inclusive uns tanto do trabalho atual quanto de outros trabalhos antigos (vai entender). Depois da primeira enxurrada de gente e donativos que ajudei a organizar (me especializei em ensacar sacos de donativos) fui correndo pra abertura do evento. Mais uma vez o Leo manda aquela abertura ótima, algo como "é isso aí gurizada, estamos um pouco atrasados então vamos lá. É um prazer estar aqui, espero que gostem do evento e mãos à obra!". O TcheLinux prega muito o método "shut up and hack" e no evento não poderia ser diferente... "Bom dia a todos, vamos fazer desse um ótimo evento e agora se mandem pras palestras que é o que importa!".&lt;br /&gt;&lt;br /&gt;Me mandei pra sala onde seriam minhas palestras, mais tarde, e me dediquei ao meu esporte predileto: dar palpite nas palestras dos colegas. Algumas pessoas ficam mais nervosas do que outras, algumas começam a palestra meio fechadas ou rígidas, e inclusive o público às vezes está meio frio. O que eu faço? Entro na sala e largo uma piada ridícula. :D Nem fico (mais) vermelho, mas com a descontração do público e do palestrante a tensão desaparece e a palestra se torna quase uma conversa entre amigos. E, na minha humilde opinião, é pra isso que nós fazemos os eventos: para que as pessoas interajam e saiam com mais conhecimento. Todas as pessoas, inclusive os palestrantes.&lt;br /&gt;&lt;br /&gt;Cheguei na palestra do Maraschini, sobre pipes, e vi que ela está melhor do que foi em Santa Maria. Mais uma prova de que todos aprendem nos eventos, inclusive os palestrantes. Com a interação da platéia e algumas conversas entre amigos, a palestra de repente se torna mais do que havia nos slides. E aí entra o Douglas, com a sua palestra mutante sobre como colaborar com o desenvolvimento do Linux. Tem tantos assuntos que podem ser falados, aspectos técnicos, culturais, comportamentais, ou mesmo simples procedimentos. Como essa palestra não é rigidamente estruturada, eu aproveito pra dar pitaco a toda hora, e não raro algum ouvinte faz algum comentário que vira uma sub-palestra de uns 15 a 20 minutos. É uma conversa entre iguais, onde quem está na frente apenas tem a responsabilidade de manter um pouco o foco e o caminho dos assuntos. Essa é a troca que eu mais gosto nos eventos do TcheLinux: a gente nunca sabe exatamente onde uma palestra vai parar, mas tem certeza que vai aprender algo que não esperava (ainda mais quando estão na sala o Luis Claudio, o Arnaldo e o Eduardo, velhos colegas e amigos, para trazer mais experiência para as conversas).&lt;br /&gt;&lt;br /&gt;Próximo do almoço eu finalmente terminei minha primeira apresentação. :D A segunda já estava parcialmente pronta, e francamente a segunda palestra que eu apresentei acabou sendo tão abrangente que os slides não adiantariam muito. Vou evitar fazer palestras assim tão grandes no futuro, e parar de estourar o tempo das palestras (já estou queimando a paciência dos amigos com minhas palestras sem fim).&lt;br /&gt;&lt;br /&gt;Logo depois do (farto) almoço, o Luis Claudio conseguiu uma proeza: ninguém dormiu na palestra dele! O assunto, Real Time Linux, é bem interessante, e o Luis Claudio domina o assunto e a platéia... acabei fazendo só uma ou duas intromissões, já que não conseguia ficar quieto. Aí vem o Arnaldo, e nos esmaga com sua apresentação animal sobre as tecnologias atuais de depuração do kernel, sua motivação, história e estado atual. Algumas das tecnologias que ele falou ele mesmo criou, adaptou ou ajuda a desenvolver. É difícil achar um evento no Brasil onde esse tipo de assunto fosse falado por alguém tão íntimo com estas tecnologias. Ficou legal o link entre a minha palestra e a do Arnaldo, porque ele falou de várias tecnologias, inclusive SystemTap, e depois eu aprofundei e demonstrei com exemplos como usar SystemTap.&lt;br /&gt;&lt;br /&gt;Terminada a palestra do Arnaldo, eu levo meu notebook pessoal, chinelão, pro projetor e nada (eu já esperava). Aí peguei o notebook da Red Hat, esse com pedigree, e nada também. Putz! O ThinkPad nunca negou fogo pra um projetor de vídeo antes! Acabei tendo que usar o notebook do Arnaldo e perdi vários minutos no início da apresentação sobre SystemTap (que, aliás, gostei bastante de apresentar). Consegui acabar a palestra de SystemTap quase na hora que deveria (ei, dá um desconto já que deu problema no notebook), tomei um copo d'água e já continuei falando começando a palestra sobre diagnóstico de problemas não triviais em redes TCP/IP (com Linux, obviamente). Eu realmente preciso fechar um pouco mais o escopo dessa palestra, sempre estoura o tempo.&lt;br /&gt;&lt;br /&gt;Tinha muito mais gente na palestra de TCP/IP do que na de SystemTap, o que é de se esperar, já que o assunto interessa a quase qualquer pessoa da área de informática hoje em dia. Fiquei com a sensação de que eu fui melhor na de SystemTap, talvez porque o escopo era menor e mais focado, porém menos gente viu ela. Aí quando lota a sala na de TCP/IP eu acabo falando de tantas coisas que nem olho pros slides pra saber onde eu deveria estar. "Na próxima eu melhoro", eu sempre prometo.&lt;br /&gt;&lt;br /&gt;Acabadas as minhas palestras, eu corri pro auditório pra fazer o painel sobre trabalho com software livre. Eu nem tinha idéia do que seria conversado, mas foi bem divertido, e acho que foi instrutivo para quem estava lá. Tendo o Arnaldo, eu, o Aurélio e o Leo fazendo uma ponta também, com o CASantos pra moderar, até que tinha bastante variedade de opiniões e experiências. Achei muito legal que algumas pessoas da platéia participaram bastante, com opiniões e informações que geraram boas discussões. É esse o ponto! Os eventos são pra isso, interagir e todos crescerem com o debate. Acho que atingimos o objetivo.&lt;br /&gt;&lt;br /&gt;Aí ficou tranquilo... encerramento, agradecimentos, abraços nos velhos amigos. Não consegui comprar o livro de shell do Aurélio, nem as canecas do grupo que eu queria, mas isso me deixou feliz! Melhor que tenham ido para pessoas que estão começando e bem motivadas do que para um macaco velho como eu (já fazem 14 anos que fuço em Linux).&lt;br /&gt;&lt;br /&gt;Me despedi do pessoal todo e fui correndo visitar meu irmão. Já eram mais de 19h30. Fiquei na casa dele exatos 5 minutos e ele me levou correndo pra rodoviária. Cheguei na rodoviária às 20h30, entreguei a passagem, subi no ônibus e ele partiu.&lt;br /&gt;&lt;br /&gt;Viajei no total 13 horas e 30 minutos, e fiquei em Porto Alegre 15 horas. Foi quase meio-a-meio, e eu obviamente estava completamente exausto. Mas essas 15 horas foram fantásticas. Pude rever bons amigos, aprender, ensinar, fazer novos amigos, e ajudar inclusive gente que eu nem conheço a ter o que comer. Dei pitaco em 4 palestras, apresentei duas e participei de um painel. ACTION PACKED!&lt;br /&gt;&lt;br /&gt;Sinceramente, os eventos do TcheLinux estarão sempre entre os melhores sábados que já tive. Espero que novos membros comecem a se engajar na organização dos eventos e mantenham esse espírito vivo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-2975594762881810942?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/2975594762881810942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=2975594762881810942&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/2975594762881810942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/2975594762881810942'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2008/11/tchelinux-porto-alegre-2008.html' title='TcheLinux Porto Alegre 2008'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-784291850864750204</id><published>2007-05-30T00:25:00.000-03:00</published><updated>2007-05-30T00:48:16.401-03:00</updated><title type='text'>Em verdade, em verdade vos digo</title><content type='html'>&lt;span style="font-family: verdana;"&gt;"Deixar a vida nos levar" é um misto de covardia e irresponsabilidade. "Viver o momento" é estar absolutamente consciente e atento, é procurar experimentar a Verdade. Não são os instintos que nos tornam humanos. Os instintos nos tornam plantas. As emoções nos tornam animais. A razão nos torna humanos. A Vontade é requisito da Liberdade. Você já identificou um arquétipo hoje? The Matrix has you, Neo.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-784291850864750204?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/784291850864750204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=784291850864750204&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/784291850864750204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/784291850864750204'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2007/05/em-verdade-em-verdade-vos-digo.html' title='Em verdade, em verdade vos digo'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-818392984158019268</id><published>2007-03-26T14:30:00.000-03:00</published><updated>2007-03-26T15:15:43.098-03:00</updated><title type='text'>Tchelinux's Software Libre Seminar in Pelotas</title><content type='html'>&lt;span style="font-family: verdana;"&gt;IMHYBO (In my humble yet biased opinion) it was a great success!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;We had around 300 people attend, collected around 600Kg of food for those in need, and everyone had a great time organizing, presenting and attending talks. I was really impressed with the interest of the participants, and the age distribution. It was really great to see talks about fairly complicated subjects, such as steganography, virtualization and internals of the linux kernel being attended by both fairly young and fairly "experient" :) people.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Personally, I barely looked at the slides for my talk about the workings of the TCP/IP and networking in general inside the kernel. The audience had so many questions and comments that the talk was more of a guided tour, with their questions leading the way.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I want to present my deepest THANK YOU to Marilton, from UCPel, who got us all the infrastructure we needed for the event, in such short notice. I don't think there was a single problem or issue throughout the whole day.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;And of course, THANKS to all my friends at TcheLinux! If we keep on maintaining such great quality at our events, we're surely going to make people understand what the spirit of Software Libre is all about. We just gather together and make things happen, no frills or large egos to stand in the way, and in the end everyone wins.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-818392984158019268?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/818392984158019268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=818392984158019268&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/818392984158019268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/818392984158019268'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2007/03/tchelinuxs-software-libre-seminar-in.html' title='Tchelinux&apos;s Software Libre Seminar in Pelotas'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-5122926701101736806</id><published>2007-03-04T02:20:00.000-03:00</published><updated>2007-03-04T03:28:41.403-03:00</updated><title type='text'>Nice NFS race condition</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Lately I've been working fairly hard to find out an NFS problem that seemed very weird. I knew it had to be a race condition somewhere, because of the way in which it was reproduced and the contradicting information I got from the various debugging tools used (tcpdump, systemtap, nfs_debug, etc). The problem is that my initial estimate was "a race condition somewhere in the server or the client". Pretty broad, eh? But like many seemingly complex problems, once you really understand it it's so simple it makes you want to cry.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Whenever a process asks Linux to open or stat a file, the actual path lookup for that file happens through the "directory entry cache" (dentry cache, dcache). Since it would be a huge performance loss to actually have to go to disk (or a server) whenever you want to lookup an entry in a directory, Linux keeps a cache in memory of the currently (or at least recently) used portion of the whole filesystem structure (including all mount points). It is kept as a tree, just like the filesystem structure, so it's easy to navigate through it and quickly lookup a file or directory, or at least get to the parent directory of an entry and get the parent's inode to issue the lookup call on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;There are two types of dentries in the dcache: positive and negative. A positive dentry is what you would expect: a dentry for an existing file or directory, with a pointer to it's inode. Another interesting information to keep in the cache is about files or directories which we know *do not* exist. If we lookup a file and find out it does not exist, we can surely keep that infomation around for whoever asks again until we notice the directory has changed. So that's the role of a negative dentry: one whose inode pointer is NULL. So if you lookup a file and find its dentry and it has a NULL inode pointer, you know the file has been looked up recently and does not exist.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;It's probably an even better optimization to cache dentries for files that *do not* exist than it is to keep for files which *do*. Just do an strace on any quick shell command and take a look at the number of files it tries to open and fails. Think of things like looking for a library in several possible paths. Or localization files. Many attempts fail until the file is found at one of the possible locations. Specially on NFS, it is very expensive to have to send a lookup to the server and wait for the answer only to find out the file does not exist. So NFS tries specially hard to keep negative dentries around.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;So how do we know when to trust and when not to trust dentries in the dcache? We look at the modification time of the directories containing them. If the directory changed since the dentry was created, we revalidate it against the filesystem on disk or the server. And here lies the root of our problem. How precise is the timestamp kept on files and directories? Usually the precision is one second. And we know a lot can happen in one second.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Imagine a directory is changed in an NFS export in a server. And imagine an NFS client looks up a non-existant file in that directory and gets (rightfully) told by the server the file does not exist. Now imagine some process in the server creates the file that was just looked up by the NFS client. And now, imagine the three things happen in one and the same second.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Oops! The directory changed in the server and we cannot detect it! Why? Because the time resolution of one second was not enough to indicate the second change happened. Since they all happened in the same second, the NFS client cannot detect the directory changed, and it will not expire its negative dentry in the dentry cache. So the NFS client will keep thinking this file does not exist.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Do you want to see it for yourself? Easy! Follow these simple instructions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# mkdir -p /local/foo /nfs/foo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# echo '/local/foo *(rw)' &gt;&gt; /etc/exports&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# service nfs start (or whatever the incantation is in your Linux distro)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# mount localhost:/local/foo /nfs/foo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# touch /local/foo; stat /nfs/foo/bar; touch /local/foo/bar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;If you were lucky enough that the three commands in the line above all executed in the same second, you will get the prize:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;# ls -la /nfs/foo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;total 16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;drwxr-xr-x 2 root root 4096 Mar  4 03:06 .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;drwxr-xr-x 3 root root 4096 Mar  4 03:04 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;?--------- ? ?    ?       ?            ? /nfs/foo/bar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;See how ls lists the entry but cannot stat it to display informations about it? strace the ls command if you want, it's really that simple. The entries returned in the getdirents call are ".", ".." and "bar", yet stating "/nfs/foo/bar" gets an error response stating the file does not exist.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Of course, now that I know how simple it is and I don't have to stare at thousands of captured NFS packets and insert yet another dfprintk or systemtap probe to try and make sense of things, I even think it is beautiful. It's so simple and easy to reproduce. :)&lt;/span&gt; If you touch the directory again, Linux invalidates the cache and things go back to normal. But until you do, it will keep trusting that cached information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Now all we need is to figure out The Right Thing to do about it. My first attempt requires that client and server have their clocks synched with NTP or some such, and involves not caching lookup information if we notice the directory has been changed just this second, because we know there could be other changes which we don't know about. I'm still trying to work it out with the NFS gurus, though, and I might come up with a better way to handle it.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-5122926701101736806?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/5122926701101736806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=5122926701101736806&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5122926701101736806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/5122926701101736806'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2007/03/nice-nfs-race-condition.html' title='Nice NFS race condition'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-116598820183287946</id><published>2006-12-13T02:55:00.000-02:00</published><updated>2007-01-09T04:37:54.863-02:00</updated><title type='text'>Charuto e lua na madrugada</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Madrugada de um longo dia de trabalho, com muitas batalhas e algumas vitórias. Saio pra rua por volta das duas e meia, pra comemorar as vitórias fumando um charuto (meio charuto, na verdade; os tais half-coronas) e dar um tempo pra cabeça esfriar um pouco. Como é bom morar em uma casa! Chego no cantinho da charutada e o que vejo? A lua nascendo no leste, se descortinando aos poucos em meio a nuvens e alguns galhos de árvores próximas. Passo um tempo admirando-a e aparentemente ela gostou de ser observada, pois logo moveu do caminho todos os obstáculos e ficou bem exposta, grande e luminosa. Baforeio (tecnicamente era pra ser "baforo" mas é tão feio) o charuto enquanto admiro a lua e escuto o vento nas árvores e as marolas da lagoa próxima. Parecia de encomenda! E ainda o tradicional órion em cima pra brincar de achar as "três marias".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;O mais divertido do dia foi procurar um possível problema de desempenho em máquinas ia64 ao ler o arquivo /proc/net/tcp. Parece mentira, mas ler esse arquivo em algumas máquinas grandes demorava um tempão (wall clock) e causava uma baita contenção de read_locks, a ponto de grudar CPUs em 100% de soft irqs e degradar o desempenho geral. Como a gente sempre pensa no pior, lá estava eu pensando em problemas de alinhamento ou coerência de cache ou alguma outra especificidade da máquina em que o problema ocorria no acesso à memória para estes locks ou estruturas específicas do TCP.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;A minha sorte foi ter que parar de trabalhar nisso e focar em outro problema urgente, pois assim um colega seguiu investigando o problema por outro lado. Ao testar em máquinas diferentes ele viu que o problema estava relacionado ao tamanho da memória, pois demorava mais em máquinas com mais memória, de forma linear. Lá pelas tantas ele achou o "problema", que na verdade (como sempre) é uma feature que saiu pela culatra.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Para ler este arquivo se faz um loop sobre o tcp_ehash, listando todas as conexões atuais. O tcp_ehash é alocado durante o boot, calculado como uma fração do máximo de memória que o kernel pode alocar para suas próprias estruturas durante o boot. Em arquiteturas x86 e derivadas, isto está limitado à quantidade de lowmem, e portanto tem um limite superior razoavelmente baixo que nunca será ultrapassado. Só que em máquinas de verdade, que não precisam perder tempo com essa incomodação de dma zone, low mem e high mem, não existe um limite específico, e o hash cresce linearmente com a memória.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Aí em x86 o hash nunca passa de 262144 entradas (o que provavelmente já é bem mais do que o necessário), mas em uma ia64 com 96GB de RAM o hash catou 16777216 entradas. Fazer um loop dentro do kernel, pegando locks, para 262144 entradas é beeeem mais rápido do que repetir o loop 16 milhões de vezes. O meu colega testou inclusive em uma máquina ia64 com 1TB de RAM, e não teve paciência de esperar o programa de teste terminar. Ele não me disse quantos hash entries foram alocados, mas calculo algo em torno de 178 milhões. Agora imagina rodar netstat em uma máquina quieta, quase sem conexões, e o comando ter que esperar o kernel fazer loops pegando e soltando locks 178 milhões de vezes, principalmente quando 99.999% das hash entries estão vazias?!?! Massa!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;O lado bom é que se pode limitar o número de hash entries via um parâmetro no boot... thash_entries=32768 deixa o hash pequeninho e provavelmente não atrapalha nada. :) Claro que será legal avaliar bem o uso deste hash e tentar chegar numa função mais apropriada para o cálculo do seu limite. Mas pelo menos o "problemão bizarro" está remediado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Esse pensamento de que "o mundo inteiro é x86" às vezes atrapalha... quando máquinas de verdade entram no jogo, a escalabilidade vai pras cucuias. É como o meu colega disse: "problemas de lentidão em ia64 geralmente são apenas problemas gerais de escalabilidade que as outras arquiteturas simplesmente não são grandes o suficiente para alcançar".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Só essa última afirmação valeu o charuto. :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-116598820183287946?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/116598820183287946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=116598820183287946&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/116598820183287946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/116598820183287946'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2006/12/charuto-e-lua-na-madrugada.html' title='Charuto e lua na madrugada'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-115642785798245301</id><published>2006-08-24T10:51:00.000-03:00</published><updated>2007-01-09T04:37:23.063-02:00</updated><title type='text'>Bin Buddhism, New Job</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Bin Buddhism: a philosophy like Zen Buddhism, but oriented towards eliminating suffering caused by attachment to data bits. All bits are an illusion, be them on disk or on tape. Backups are an illusion of an illusion. All data vanishes anyway.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;OK, that was cheap. But at least I'm posting something after a long time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Job Update! I'm now working for Red Hat, which means I'm back to my beloved Linux world! I still keep a passion for OpenBSD, and I like to inspire my work on it, of course. It's been a rough start, as I slowly get used to processing massive amounts of information every day, but nevertheless I can say that I'm feeling realized as a professional again, as I used to feel when working for Conectiva. I might end up posting more often now. :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-115642785798245301?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/115642785798245301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=115642785798245301&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/115642785798245301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/115642785798245301'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2006/08/bin-buddhism-new-job.html' title='Bin Buddhism, New Job'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-114736553984998166</id><published>2006-05-11T13:36:00.000-03:00</published><updated>2006-05-11T13:42:42.823-03:00</updated><title type='text'>FUN: Why learn the API when there's javadoc?</title><content type='html'>&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5107/1233/1600/Construction.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5107/1233/320/Construction.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;OK, it's fake, but it's fun!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-114736553984998166?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/114736553984998166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=114736553984998166&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114736553984998166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114736553984998166'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2006/05/fun-why-learn-api-when-theres-javadoc.html' title='FUN: Why learn the API when there&apos;s javadoc?'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-114736519200867941</id><published>2006-05-11T12:30:00.000-03:00</published><updated>2006-05-11T13:35:29.686-03:00</updated><title type='text'>Old passions revisited: linux-ha and kernel hacking</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Wow, long time no post. As usual. Anyway I decided to write something to mark this moment when I'm slowly going back to my most pleasurable mind games: Linux High-Availability projects and Linux kernel hacking for fun and profit. I'm slowly finding the old mailing lists, checking the archives, setting up mail filters to keep the sanity level on average, reading up on articles and whitepapers... all the pleasing activities of simple and uncompromised curiosity/creativity.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;This is not to mean I'm not using OpenBSD anymore. I'm still in love with OpenBSD and still think there are lessons to learn there. Lessons of simplicity, correctness and cleanliness. My HDs will always carry an A6 partition from now on. :-) It's just that most of my friends are Linux people, and it's easier for me to find ways to participate and contribute on Linux than on OpenBSD, which is not that well known where I live. And it's also surely easier to find Linux development jobs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Now that I have the time and resources to participate better in the "community", I've been remembering the forgotten "warm fuzzy feeling" of helping people on mailing lists, coding and simply sending patches away, just helping. Maybe that's the reason why I hadn't been feeling quite myself in the last several months. Kernelnewbies, here I come! (BTW, Happy Birthday Rik! Live long and prosper!)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-114736519200867941?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/114736519200867941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=114736519200867941&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114736519200867941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114736519200867941'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2006/05/old-passions-revisited-linux-ha-and.html' title='Old passions revisited: linux-ha and kernel hacking'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-114139693850954780</id><published>2006-03-03T11:22:00.000-03:00</published><updated>2006-03-03T11:42:18.560-03:00</updated><title type='text'>pt_BR: Como gerenciar projetos sem tirar o tesão do desenvolvimento?</title><content type='html'>&lt;span style="font-family: verdana;"&gt;O que se pode fazer quando precisamos parar e pensar em headers HTTP, webservices e escovação de bits, mas as ferramentas de gerência só entendem números de requisitos e Use Cases de alto nível? Como convencer um ou todos os clientes internos a pagar TAMBÉM pelo trabalho de infraestrutura necessário para viabilizar as suas features?&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Tenho saudades do tempo em que eu simplesmente fazia cvs commit e mandava email pra uma lista. :-(&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-114139693850954780?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/114139693850954780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=114139693850954780&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114139693850954780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/114139693850954780'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2006/03/ptbr-como-gerenciar-projetos-sem-tirar.html' title='pt_BR: Como gerenciar projetos sem tirar o tesão do desenvolvimento?'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-113399846386865706</id><published>2005-12-07T21:25:00.000-02:00</published><updated>2005-12-07T23:54:25.013-02:00</updated><title type='text'>Kids, parents and free software</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Four-year-old son suddenly gets crazy about breakout/arkanoid-type games.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Father downloads five game variations for the son to check out.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Son picks the one he likes the most.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Father hacks the game to start with 999 balls.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Profit!&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ahh rainy weekends are just not a problem anymore. :)&lt;br /&gt;&lt;br /&gt;Addendum:&lt;br /&gt;&lt;br /&gt;The breakout game he picked, xbreaky, is a fairly simple and small game that most likely appeals to kids much more than the gorgeous-looking and noisy lbreakout2. xbreaky has simple basic colors and cute block patterns, but it does have a problem: the ball ALWAYS bounces at 90 degrees.&lt;br /&gt;&lt;br /&gt;No matter what you do with the beam to try and hit the ball sideways, spinning, on the edge or whatever, it always bounces off at 90 degrees. Now, Lucas at 4 years cannot understand the simple geometrical patterns the ball describes in the screen and mentally project the next N moves, but any grown up (especially a computer nerd) just KNOWS it will take about 2^13 bounces for the FSCKING BALL to hit that FREAKING LAST BLOCK.&lt;br /&gt;&lt;br /&gt;Sometimes it feels like I'm watching a Lorenz Attractor. Really.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-113399846386865706?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/113399846386865706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=113399846386865706&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/113399846386865706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/113399846386865706'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/12/kids-parents-and-free-software.html' title='Kids, parents and free software'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112991235269218795</id><published>2005-10-21T14:32:00.000-02:00</published><updated>2005-10-21T14:38:46.410-02:00</updated><title type='text'>Cognitive dissonance? How about cognitive dis-own-ance!</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Who said you can claim ownership over your thoughts and perceptions? I can think your thoughts as well, specially considering they've been through me already! Should be just a matter of proper perception tuning.&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Short post, no time to post for ages, but happened to think of a catchy phrase for the title. :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112991235269218795?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112991235269218795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112991235269218795&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112991235269218795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112991235269218795'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/10/cognitive-dissonance-how-about.html' title='Cognitive dissonance? How about cognitive dis-own-ance!'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112718476199176403</id><published>2005-09-19T23:17:00.000-03:00</published><updated>2005-09-19T23:52:42.020-03:00</updated><title type='text'>Make sure to generate entropy, for God is a compressor</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Somehow these days I was tying up Carlos Castañeda's Eagle's Gift with the fact that "when you die all your life passes in front of you" and stuff, and also with the fact that everybody likes a good story, so even God must surely do. Even more so, He gave us life so that we could experiment and then tell Him interesting and fun things. He actually can't experiment life Himself, since He's the absolute. If you're the absolute everything, you can't surely be the individual, detached something. So you need the individual somethings to tell you how things were while journeying through the infinite everything.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So I was thinking that perhaps when you die you get your chance to tell God how great and fun your life was, and if He laughs and likes it, He'll get you a nice gift. Now, imagine how absurdly many dull and stupid lifes He has to listen to, until He gets to finally receive a truly beloved child and eagerly hear their story. The dull, repeating ones get only a kind of "Ah, ok. Wait on the line for your next try." response from Him. The fun, diverse and entertaining lives get responses like "You have understood the true meaning of life and love, my beloved child, so I'll give you FNORD.".&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;If you live a dull life, you'll only increment some counter in an already established pattern. You'll be God's déjà vu. You'll be lost in the compression algorithm of the Universal Mind.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So make sure you create interesting and unexpected conscience patterns! Experiment some chaos, bring diversity to your life (or at least to your perception of your life). Make sure you carve up your own patterns in the Universal Mind's compression tables (they'll be there forever), and make sure existance is more enjoyable to everyone (people will be able to pick up your cool patterns through intuition). All you need is chaos and love.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Hail Eris!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112718476199176403?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112718476199176403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112718476199176403&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112718476199176403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112718476199176403'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/09/make-sure-to-generate-entropy-for-god.html' title='Make sure to generate entropy, for God is a compressor'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112672185306167425</id><published>2005-09-14T11:40:00.000-03:00</published><updated>2005-09-14T15:17:33.126-03:00</updated><title type='text'>Rediscovering Discordianism</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Hey, long time no post. I'll try to have a bit more of a discipline with this blog thing, as I usually have interesting ideas when I'm away from the computer, and then forget them immediately upon approaching the computer. In any case, I just felt like writing about Discordianism, and I don't even have any new thing to say about it.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Recently I've spent a week in the US for some massive amounts of meetings and intense hands-on coding (we've got a lot of stuff to deliver soon and email+teleconfs was not enough to handle it). One of the good things I've done there is go to Barnes and Nobles and buy my own copy of The Illuminatus Trilogy, which I find to be one of the best books I ever read. Totally mind-fucking, but since everyone likes a good fuck and we nerds like mental things, a bit of mind-fucking is the best thing that can happen to a nerd. You feel so much mental pleasure in the massive amount of intricate, false, true and ha ha only serious information in that book.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So now I think I've increased the participation of Discordianism in my religious side, so that Yoga is 45%, Discordianism is 45% and mostly everything else gets to share 10%. I don't think there is anything else of religion that does not fit either of the first two, but hey, life always surprises us, so there is that 10% there just in case.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;In fact, I even found out that I was born in a year that maps to 23 (1 + 9 + 7 + 6), which gave me an instant warm fuzzy feeling for a few minutes. Heh, that book even sent me reading The Revelation again, around chapter 13, I think. Too bad there's no chapter 23 in it.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;The recent Katrina mess in the US and the position of Bush about it reminded me of this:&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;blockquote style="font-family: verdana;"&gt;10. The Earth quakes and the heavens rattle; the beasts of nature flock together and the nations of men flock apart; volcanoes usher up heat while elsewhere water becomes ice and melts; and then on other days it just rains.&lt;br /&gt; &lt;br /&gt;11. Indeed do many things come to pass.&lt;br /&gt; &lt;br /&gt;HBT; The Book of Predictions, Chap. 19&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112672185306167425?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112672185306167425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112672185306167425&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112672185306167425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112672185306167425'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/09/rediscovering-discordianism.html' title='Rediscovering Discordianism'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112196822037310298</id><published>2005-07-21T14:21:00.000-03:00</published><updated>2005-07-21T14:50:20.380-03:00</updated><title type='text'>AM Radio</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Nerds are strange beasts with stranger tastes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Today I remembered how I really like AM radio. I got to work by bus, and decided to plug some noise into my ears other than the usual traffic and city noise. I always try to carry my AM/FM radio around (it's a Sony digital something (I noticed people expect brands and models of gadgets mentioned in nerdy blogs)), since I'd rather listen to something weird/new than my good old CD collection, which I actually hardly listen to. MP3 players are also not my thing, since I'd soon get fed up with the same songs all the time, or I'd loose several hours a week managing playlists. I like radio, and today I tripped on the band button and suddenly was (gladly) dragged back to the AM universe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Static, white noise. I could listen to my GSM cellphone receiving a message from my wife before the phone announced it. I also heard the clicks and feeps of my answer as it found its way into data packets and off the air. Sometimes a bit of 60Hz signals when the bus was close to high-voltage lines. And over all that, information. I think that's what I like about AM radio. It's much too low-tech for trendy, fashionable, "pop culture" things, so all you can get is raw information and news from interesting people. Hey, I even voted (YES) in this interactive poll about whether we should pass a city law to forbid smoking on any public closed place.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;As I write I also remember how my trusty radio was one of my best friends when I spent 6 to 8 months working in Brasília, only seeing my family in Porto Alegre every two weekends. Brasília is a nice city, but you HAVE to have a car in order to get to know it and I didn't. It was like breakfast-work-lunch-work-dinner-(work?-)sleep. For days and weeks (sometimes weekends). After the first few weeks of walking around the hotels and work, I didn't really have a lot more to do than read in my room and listen to my radio. I started trying to find the weirdest radio ever, and the candidates were usually religious radios of all sorts. They were really fun to listen to, specially during the night.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;So now, as I work with IPv6, security, Unix and embedded devices, I listen to good old AM radio (and love it). Go figure.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112196822037310298?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112196822037310298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112196822037310298&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112196822037310298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112196822037310298'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/am-radio.html' title='AM Radio'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112178284541247095</id><published>2005-07-19T11:03:00.000-03:00</published><updated>2005-07-19T11:20:45.420-03:00</updated><title type='text'>Bugs by Design</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Today I just participated in this somewhat heated debate at work about the limitations of Microsoft technologies, and I remembered something I posted on an &lt;a href="http://undeadly.org/cgi?action=article&amp;sid=20050607210200&amp;mode=expanded"&gt;article&lt;/a&gt; at &lt;a href="http://undeadly.org/"&gt;OpenBSD Journal&lt;/a&gt;. I decided to maybe recycle it a bit and repost it here, for a wider audience.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;[replying to ramblings on Microsoft's buggy implementation of ACPI]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;It's been a few years now that I've come to perceive such "mistakes" coming from Microsoft not as their &lt;/span&gt;&lt;b style="font-family: verdana;"&gt;fault&lt;/b&gt;&lt;span style="font-family:verdana;"&gt;, but as part of a carefully architected &lt;/span&gt;&lt;b style="font-family: verdana;"&gt;plan&lt;/b&gt;&lt;span style="font-family:verdana;"&gt; to keep the rest of the world spinning around them as much as they can.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;They used to protect their monopoly position by the well known "Embrace and Extend" tactics of producing seemingly better protocols/formats only slightly incompatible with the standards. Very soon everybody else who wants to play has to bow and implement the slightly incompatible version and it becomes a de facto standard. The "Embrace and Extend" tactic got too old-fashioned and easy to spot, so now it's been recycled to something like "Embrace and &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&amp;va=distort"&gt;Distort&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In this new "Embrace and Distort" tactic they get standards wrong on purpose so that they still get everyone to jump when they say jump. It doesn't have to be Microsoft ACPI anymore, it's just ACPI. But whoever sets out to implement such distorted standards sooner or later finds out they are heavily influenced by some "[mis-]&lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&amp;amp;va=take"&gt;take&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;" (noun, 5th meaning) from Microsoft.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;When people call them on it later on they can always say "Oh, but the standard is so dificult to get right!" (they distorted it) or "Hey, it's a bug!" (feature).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;OK, the above sounds conspirational, I have no evidence, no facts, blah blah. Whatever. It's just my opinion.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112178284541247095?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112178284541247095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112178284541247095&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112178284541247095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112178284541247095'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/bugs-by-design.html' title='Bugs by Design'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112144894182057733</id><published>2005-07-15T14:28:00.000-03:00</published><updated>2005-07-19T16:25:59.316-03:00</updated><title type='text'>Fábio Olivé's Icon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5107/1233/1600/olive_berserk.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/5107/1233/200/olive_berserk.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;My good friend Claudio Matsuoka took an old B&amp;amp;W picture I have and added colorization. It looks like the guy from the old Doom game, and looks a bit too sepia (he said he will fix it in the near future), but I LIKE it! Heheheh I'm a lot more easy-going than the picture seems to imply, but it serves well as an icon.&lt;/span&gt; &lt;span style="font-family:verdana;"&gt;Actually, the main purpose of this post is to send this picture to Blogger and then point my profile at it, since I don't have anywhere else to put it. :)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5107/1233/1600/olive_berserk2.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5107/1233/320/olive_berserk2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Hmmm maybe this one looks better.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112144894182057733?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112144894182057733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112144894182057733&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112144894182057733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112144894182057733'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/fbio-olivs-icon.html' title='Fábio Olivé&apos;s Icon'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112143570912994913</id><published>2005-07-15T09:39:00.000-03:00</published><updated>2005-07-15T10:55:09.143-03:00</updated><title type='text'>Unix-Fu</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Yesterday I assisted a good friend in extracting some lines from a database dump in fixed-width format, so that he could validate the dump before importing it into another database. He is a full-fledged DB person, grand master in PL/SQL and all. Yet he has only some practical Unix experience, and only knows some key commands for manipulating big text files so that he can check his database dumps.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;He had already checked the start of the file with head -10000, and now was checking the end of the file with tail -10100, in order to get the last 10,100 lines (records, in a DB dump) from the file. For some reason his sample file was coming out with only about 79 lines, so he sent me a message to ask for help.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;We checked what Unix he was using (uname -a) and behold! It was HP-UX, which I use almost daily at work, so it would be easy to check manpages and all. I asked him to count the lines in the file (wc -l), and the big dump had 15,700,000 lines in it. It was clear tail should find the last 10,100 lines from the file without problems. We looked at file size (ls -l) and it was just under 4GB. Since he was at a 64bit machine, this should not be a problem.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;I took a look at tail's manpage on a local HP-UX machine, and then easily found the source of his problems: HP-UX's tail operates on a fixed 20KiB buffer, and surely we found that his sample file was exactly 20KiB in size. Given his limited experience he thought this would be the end of it, but I promised to message him back some other command line that would extract the last 10,100 lines he wanted.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;I quickly looked at awk's manpage (I should exercise my memory better) and sent him 'awk "NR &gt;= 15700000 - 10100" dump_file.txt &gt; sample_file.txt'. It crunched the file for a while and after a few minutes exited leaving a perfect sample file for his validation. He was all happy and took note of this command on his notepad. I thought it was it.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Later in the day he sent another message, stating some records were broken and he was trying to find lines which did not have the expected 259 character length. What I liked about it is that he was already peeking awk's docs and was trying 'awk "length =! 259" dump_file.txt &gt; broken_recs.txt'. I told him it was != instead of =!, and he quickly found the broken records the database dumper had generated. I really enjoyed the fact that he took my small awk tidbit and was already improving on it. I explained to him that if he handled textual database dumps frequently, awk would be his life saver, and he asked if I could send him docs and examples.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;I recognized that in some sense he had gotten to a newer level in his practical Unix experience, and jokingly told him we would later have his ceremony where he would receive his new Unix-Fu belt. Unix-Fu belts stuck on my mind during the rest of the day (not for the first time, though: I once sent email to ThinkGeek proposing they create cool Unix-Fu, Korn-Fu and Perl-Fu belts, but never had an answer), and today I decided to take a look at the Kung-Fu belt degrees and mimic that with Unix-Fu knowledge and experience.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;So here's my initial proposition at a Unix-Fu belt system:&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;White Belt: Has a few commands written on a notepad, retypes them when needed with little variation but is starting to perceive the power of the command line and wants to learn the path.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Yellow Belt: Knows about variable substitution and shell redirection, able to create simple pipelines to achieve some interesting data manipulations. Still gets some Useless Use of Cat Awards, though. Can create small scripts with their sequences of simple pipelines and a few temporary files. Reuses some sed and awk tricks from the written notepad.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Orange Belt: Has picked a preferred shell and read its documentation several times. Uses all kinds of substitutions on the command line, and knows when to use ', " and \ to achieve the necessary level of escaping and substitution. Creates networked shellscripts. Never sees a ^H again and is fully able to understand and [ab]use X. Read Sed&amp;Awk three times.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Green Belt: Perl. C. CVS. Contributes to free software projects. Understands Unix history and picked a Unix variant of choice with reasonable argument.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Blue Belt: Has created some unique commands for personal use and shared with friends. Started some free software projects, based on those commands. Contributed full userlevel features to their Unix of choice. Has ~/bin as the first element of $PATH.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Purple Belt: Knows every config file in /etc and installs perfectly tight Unix systems. Frequently recompiles their Unix of choice, creating custom installation images. Creates LiveCD images of their Unix of choice to carry around.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Brown Belt: Understands the static and dynamic binary formats of their Unix of choice, has enhanced and fixed bugs in basic libraries such as libc, libm and libz and has implemented a few network services, with and without inetd. Is capable of creating auto-generating shell command lines of the third degree.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Black Belt: Has developed considerable features and fixed bugs at kernel level for at least one Unix variant. Has fought and won SMP race conditions on device drivers without resorting to big locks. Recompiles their Unix of choice with a bigger limit for command lines.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Or maybe we should split the art of Unix-Fu in styles: User Style, Admin Style and Developer Style, this last one having two variations: the way of the process and the way of the kernel. but that's for another day.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112143570912994913?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112143570912994913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112143570912994913&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112143570912994913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112143570912994913'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/unix-fu.html' title='Unix-Fu'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112083144384982813</id><published>2005-07-08T10:16:00.000-03:00</published><updated>2005-07-08T11:04:03.880-03:00</updated><title type='text'>Premature IT Project Managers</title><content type='html'>&lt;span style="font-family: verdana;"&gt;One thing that has particularly puzzled me at work and when talking to friends and friends of friends (hehe no, not at Orkut, but in real life) for a while now is the increasing amount of IT workers fresh out of college/university who want to become Project Managers instantly.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I'm quite biased for such an observation, but I can't help but notice that the most common thing about these people is that they:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;a) usually know nothing but Windows;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;b) usually know nothing but Java;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;c) usually know and apply UML to the most infinitesimal detail.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Now, I'm not particularly against any of these things (I've learned to regard them as penitence, not as sin), and I actually use the three of them at work (gotta feed the family blah blah). Nevertheless I think it does paint a picture of what kind of Project Manager these people will become.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Windows is painful to use. It limits creativity in ways unheard of. When you install it, it's about as good as an empty fridge: it works, but in order to make it useful you have to buy a lot of actual goodies to put inside it. These brilliant managers of the future, bred on the limitations of Windows, will later on try to put Windows everywhere, from the microwave oven (can anyone say bloat?) to the Space Shuttle (we want to bring the astronauts back ALIVE this time, ok?).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Java is ... Java. It looks like C or C++, but it is slow because it is interpreted and relies on a garbage collector for memory management. It encourages slow algorithms or practices, since people don't have to think much anymore because of the garbage collector and the limiting data types, and the massive class library (people ALWAYS try to take advantage of the class library, even if it looks weird and distorted [this will be the subject of another post]). Java is limiting, because people use it as the holy grail of software development and no one is encouraged to perhaps look elsewhere and find languages more suited to the task at hand. Java is the development hammer that makes all software projects look like nails.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I like UML, as I like things that try to order and unify chaos, but people tend to forget that models are models and as such will never be the real thing. You don't implement software in Use Case diagrams and sequences of bubtangles. The UML models should be clean and simple, yet the aspiring 21-year-old Project Managers apply comments and superfluous relations to the limits of the page size. The aspiring 21yoPMs know exacly what kind of arrow head means what in which context, according to whichever post from someone in some mailing list. When it comes to the actual bits, well, you drag and drop some classes and components on Eclipse and it all falls into place, right? Who cares that the software is inneficient (blame the class library!) and that he doesn't know how many bits fit into a signed byte. The aspiring 21yoPM fails to understand that about three people will read the UML diagrams, and millions of people will use his software.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Another quote I could attribute to many of those aspiring 21yoPMs is "I don't like programming". I guess this sums it all up. They don't like programming, which most likely means their computing degree means nothing, yet they want to manage software projects.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;heh, I should restrain my verbosity a bit.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112083144384982813?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112083144384982813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112083144384982813&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112083144384982813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112083144384982813'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/premature-it-project-managers.html' title='Premature IT Project Managers'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112071122097436027</id><published>2005-07-07T01:28:00.000-03:00</published><updated>2005-07-07T01:40:20.980-03:00</updated><title type='text'>God is Z</title><content type='html'>&lt;span style="font-family: verdana;"&gt;One day the young apprentice approached the Master and said:&lt;/span&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;"Master, if I take zero to mean evil, darkness and ignorance, and one to mean good, light and understanding, does that make God a flip-flop?"&lt;/span&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;The Master contemplated the question for a clock cycle and said:&lt;/span&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;"My young padawan, if you take zero and one to be your relatives, that makes your own mind to be the flip-flop, constantly bouncing over a series of random-looking bits, ever further from the quietness of the idle loop. God, on the other hand, or the absolute, mind you, is then the high-impedance state. Neither good nor bad specifically, but either good or bad when it comes to be."&lt;/span&gt;&lt;br/&gt;&lt;br /&gt; &lt;span style="font-family: verdana;"&gt;Upon hearing this the apprentice was enlightened.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112071122097436027?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112071122097436027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112071122097436027&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112071122097436027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112071122097436027'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/god-is-z.html' title='God is Z'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13843503.post-112070425598086633</id><published>2005-07-06T23:19:00.000-03:00</published><updated>2005-07-07T00:02:53.373-03:00</updated><title type='text'>Why Yoga and Unix?</title><content type='html'>&lt;span style="font-family:verdana;"&gt;One of the things I enjoy the most are unifying theories or principles, and naturally things that derive from unified, simplified or synthetic concepts.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;After being raised a catholic christian, studying Buddhism, being exposed to spiritism, having a glimpse of Taoism and Zen-Buddhism, going a bit christian again with the luteran church and then falling in love with Discordianism, I stumbled upon Yoga (Raja Yoga, not the body-stretching-with-a-warm-fuzzy-feeling type) and couldn't help but stare in awe at the origin, the unifying principles of about all other religions, so plain, so easy, so simple. It's like KISS applied to religion/existence.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;On the technical side, I was raised with 8bit computers, the type that had ROM-BASIC and would boot in a second to a very intriguing prompt. I learned BASIC from the books that came with it (my father helped since he once programmed in FORTRAN in punched cards), and in about a year I was programming in assembly and reading about computer architecture. I like bits, and combining bits. I like putting simple things together to accomplish complex things. I get offended by being exposed for too much time to icons and GUIs. This means I like systems where I can boot into a programming environment, and where I can go down to the bits if I want to, and combine things together in complex ways. This obviously means I like Unix, where I can have several programming languages out-of-the-box, where I can treat myself to the expressiveness of a carefully crafted command line, where the system tries its best to get out of the way so that you can combine tools in unpredictable ways.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I see in both Unix and Yoga one of the key concepts of elegance, and that's simplicity. Just the right dose of basic unifying concepts, and a universe of combinatorial explosion to analyse.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I hope you enjoy the posts as much as I will enjoy writing.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13843503-112070425598086633?l=fabioolive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fabioolive.blogspot.com/feeds/112070425598086633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13843503&amp;postID=112070425598086633&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112070425598086633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13843503/posts/default/112070425598086633'/><link rel='alternate' type='text/html' href='http://fabioolive.blogspot.com/2005/07/why-yoga-and-unix.html' title='Why Yoga and Unix?'/><author><name>Fábio Olivé</name><uri>http://www.blogger.com/profile/04061317148782399103</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-_sdNk33Q5B4/TsMsODILq_I/AAAAAAAAAFQ/3eGEwz5dgGg/s220/FabioOlive5yearsVGAvatar.jpg'/></author><thr:total>4</thr:total></entry></feed>
