tag:blogger.com,1999:blog-45869393025611972822024-02-07T13:39:57.350-05:00M.M.U.L.P.PMinha mãe usa Linux porque podeUnknownnoreply@blogger.comBlogger23125tag:blogger.com,1999:blog-4586939302561197282.post-62622093164921768712023-01-20T09:24:00.003-05:002023-01-20T09:24:59.342-05:00Get a kerberos ticket from Gnome Online Accounts via dbus<div class="storybody">
<p>Four years after my last post here, I still struggle somewhat regularly with getting stuff done over dbus. I know, I could have employed some of my free time during these years to actually learn dbus but alas... <strong>Here is my latest finding.</strong></p>
<p><code>$ dbus-send --session \<br />
--dest=org.gnome.OnlineAccounts \<br />
--type=method_call \<br />
--print-reply \<br />
/org/gnome/OnlineAccounts/Accounts/account_<i><strong><something></strong></i> \<br />
org.gnome.OnlineAccounts.Ticketing.GetTicket \<br />
</code>
</p>
<p>And how do you find this little <code><strong>account_<i><something></i></strong></code> item you need to know? I'm glad you asked.</p>
<p><code>$ gdbus introspect -e -r \<br />
-o /org/gnome/OnlineAccounts/Accounts \<br />
-d org.gnome.OnlineAccounts |less<br />
<br />
(...)<br />
node /org/gnome/OnlineAccounts/Accounts {<br />
node /org/gnome/OnlineAccounts/Accounts/<strong>account_1647435362_1</strong> { <=== here it is!<br />
(...)<br />
readonly s ProviderType = 'kerberos'; <=== this is a kerberos-type online account
</code></p>
<p>That's all for today. See you in another decade.
</div>Unknownnoreply@blogger.com0Montreal, QC, Canada45.5018869 -73.5673918999999916.782899092328798 -108.72364189999999 74.220874707671214 -38.41114189999999tag:blogger.com,1999:blog-4586939302561197282.post-65676865169649002232018-02-09T12:02:00.000-05:002018-02-09T12:02:05.127-05:00Update dnsmasq's DNS servers using dbus<div class="storybody">
<p><code>10.0.0.1</code> is my upstream server.</p>
<p><code>10.11.11.11</code> and <code>10.12.12.12</code> are the DNS servers for my VPN under domain <code>example.com</code></p>
<p><code>10.21.21.21.21</code> and <code>10.22.22.22</code> are the DNS servers for my other VPN under domain <code>example.net</code></p>
<h3>Command (spacing within the code is optional)</h3>
<pre>sudo gdbus call -y \
-d org.freedesktop.NetworkManager.dnsmasq \
-o /uk/org/thekelleys/dnsmasq \
-m uk.org.thekelleys.dnsmasq.SetServersEx \
"[
['10.11.11.11', 'example.com'],
['10.12.12.12', 'example.com'],
['10.21.21.21', 'example.net'],
['10.22.22.22', 'example.net'],
['10.0.0.1']
]"
</pre>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-7584459924030751852017-02-18T16:00:00.001-05:002017-02-24T19:48:53.938-05:00Segurança da LAN doméstica com IPv6<div class="storybody">
<h3>Sua LAN está protegida, mas não é o NAT que faz isso.</h3>
<a href="/2016/12/ipv6-ipv4-dual-stack-com-live-tim.html" target="_blank">Estou usando IPv6 em casa e no home office há alguns meses, e você provavelmente também pode usar já</a>.<br />
<br />
É curioso como a gente se sente seguro atrás do NAT do modem. Eu certamente <b>me sentia mais tranquilo</b> usando IPv4 com NAT feito pelo modem, sabendo que o NAT impedia que minhas máquinas dentro da LAN recebessem uma requisição de conexão vinda da Internet. Afinal, na Internet ninguém sabe o que há por trás do IP público que está no meu modem.<br />
<br />
<h4>
De onde vem o medo pelo fim do NAT que o IPv6 traz?</h4>
O medo vem do fato de que <b>qualquer máquina na Internet (v6) pode mandar pacotes diretamente para o meu computador atrás do modem, pois ele é globalmente acessível no endereço <code>xxxx:yyyy:zzzz:aaaa:bbbb:cccc:dddd:eeee</code></b>. Isto é, todo host IPv6 é globalmente endereçável.<br />
<br />
Mas lembre-se: globalmente <b>endereçável</b> ≠ globalmente <b>acessível</b>.<br />
<br />
<p><b>A sensação de segurança decorrente do NAT é falsa</b>: [<a href="https://www.internetsociety.org/deploy360/blog/2015/01/ipv6-security-myth-3-no-ipv6-nat-means-less-security/">IPv6 Security Myth #3 – No IPv6 NAT Means Less Security</a>]
<p>Resumo do link acima: ao usar IPv4, quem dá segurança à sua LAN é o <b>firewall SPI</b> (<i>stateful packet inspection</i>) do modem, não o NAT.</p>
<h3>Como seu modem oferece segurança à sua LAN</h3>
<p>
Veja a figura abaixo.</p>
<p><img src="https://www.lucidchart.com/publicSegments/view/c6809d7e-b1a2-4352-8fe4-7852dda7fcf5/image.png" width="580" /></p>
<p>Quando seu computador na sua LAN doméstica se comunica com um host na Internet, ele manda o pacote ao modem, esse pacote é registrado pelo modem (quem mandou o pacote, de qual porta veio, pra qual porta vai, e pra qual IP (v4 ou v6) o pacote vai), e o modem encaminha o pacote ao IP (v4 ou v6) de destino.</p>
<p>O pacote de <b>resposta</b> vem da Internet e chega ao modem, que por sua vez <b>verifica se o IP e a porta de origem do pacote de resposta casam com aquele pacote que saiu há pouco</b>. Caso não casem, o modem bloqueia o pacote. Aí está a sua segurança. Este é o <i>stateful packet inspection</i> que o modem faz.</p>
<p>Veja como fica o firewall IPv6 do modem com Stateful Packet Inspection. Note que simplesmente retiramos a etapa de tradução do endereço de destino no retorno do pacote. Mas a segurança continua lá.</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC2MQtsscxyKKsNUP5_opJdToxqeE_NNHRbYVl7eYYOwyFQsWl9aHNjLw3-rwPfUqZ2EPOJIRCANME_Q-c22WKHhQzKLW4J8TNyyr07DiEpZUHZ6D4CJ9SEw-Oo-GKdxmdnMZ3MCowvsA/s1600/IPv6-NAT-indexado.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC2MQtsscxyKKsNUP5_opJdToxqeE_NNHRbYVl7eYYOwyFQsWl9aHNjLw3-rwPfUqZ2EPOJIRCANME_Q-c22WKHhQzKLW4J8TNyyr07DiEpZUHZ6D4CJ9SEw-Oo-GKdxmdnMZ3MCowvsA/s1600/IPv6-NAT-indexado.png" /></a>
<p>
Exemplo da tela de configuração do meu modem Technicolor TD5336:</p>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFXj4JwTKoZqGjRca6ySXVZSfV7v3T7X8SV-FbDn5mpBk7ywAPxbzSWIpk6aB-JVQc9E0Hw0c22-PK1gctdklw53w1S98Tk9qyqFamu8CEKzR8tC_Rn_LUc4SDVm2w3l5LDXBnSRYyHI/s1600/tralala.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="modem settings image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFXj4JwTKoZqGjRca6ySXVZSfV7v3T7X8SV-FbDn5mpBk7ywAPxbzSWIpk6aB-JVQc9E0Hw0c22-PK1gctdklw53w1S98Tk9qyqFamu8CEKzR8tC_Rn_LUc4SDVm2w3l5LDXBnSRYyHI/s1600/tralala.png" title="modem-settings" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">O modem já vem configurado para boquear todo e qualquer acesso à LAN vindo da WAN (isto é, da Internet).</td></tr>
</tbody></table>
<p>
Veja que prático, o modem já vem com a regra configurada: todo pacote pode sair da LAN para a Internet (WAN, no linguajar do modem), mas nenhum <b>novo</b> pacote pode vir da Internet para a LAN. <b>Resolvido! \o/</b></p>
<p>
<b>Mais ou menos</b>. Já ouviu falar da importância dos pacotes ICMP para o IPv6?</p>
<h3>Modem fechado demais</h3>
<p>
No IPv6, os pacotes ICMP (chamados de ICMPv6) têm um papel central, mais do que no IPv4. Como no IPv6 a comunicação se dá diretamente entre seu laptop e o host na Internet, sem um NAT para intermediar, é o seu laptop que precisa receber os pacotes ICMP em caso de problemas nessa comunicação.</p>
<p>Veja <a href="http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-parameters-3" target="_blank">aqui</a> uma bela lista de todos os tipos de pacotes ICMPv6.</p>
<p>O mais importante e que normalmente vem desativado nos modems é o <code>Packet too big</code>, que os roteadores utilizam para informar que um pacote é maior que o MTU. <a href="http://www.tcpipguide.com/free/t_IPv6DatagramSizeMaximumTransmissionUnitMTUFragment.htm" target="_blank">[Mais detalhes]</a><br/>
Além, claro, dos tipos <code>Echo request</code> e <code>Echo reply</code> (ping e pong, respectivamente).</p>
<p>Um site que testa o sucesso dos pacotes ICMPv6 na sua conexão é este:</p>
<ul>
<li><a href="http://ipv6-test.com/" target="_blank">http://ipv6-test.com/</a></li>
</ul>
<h3>Abra seu modem</h3>
<p>O primeiro passo nos meus dois modems após ativação da conexão IPv6 foi pedir ao firewall para permitir a entrada de todos os tipos de pacotes ICMPv6. Aqui está como ficou o filtro de IP no modem Technicolor TD5336:</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPH9tWSCJYUhwtUza8BbSGXWA075Rq135pUw_IEAJM81_vLjbU9Ub8rikIQVv4LeOoJ-ACet2dOgc-fzm2XpBYGM7OU-yXvSpohSp6fBOrrw7YR0fPQssGhucO_1BD-QkkK5w0IVhr1cE/s1600/ipv6-modem-firewall2.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPH9tWSCJYUhwtUza8BbSGXWA075Rq135pUw_IEAJM81_vLjbU9Ub8rikIQVv4LeOoJ-ACet2dOgc-fzm2XpBYGM7OU-yXvSpohSp6fBOrrw7YR0fPQssGhucO_1BD-QkkK5w0IVhr1cE/s1600/ipv6-modem-firewall2.png" width="580" /></a>
<p>A regra acima é bem simples: permitir todo pacote ICMPv6 vindo da WAN para a LAN.</p>
<p>É neste mesmo item de configuração que você pode abrir a comunicação com suas máquinas na LAN. Por exemplo, eu adicionei mais uma regra para permitir a comunicação com a porta TCP/22:</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjIg6mydfzFpHzhTAsGxu_PSA2M2OQHqcv_ctAG7Smeqf6e3bSEy7MA8bctyTRIupUPtW5GZghilDxDHLK_-suGqfk1OdVL8H3ljYwryFNzsZWYk-jT3ZjdwUsSDP87EuW1UtRnOizXpw/s1600/ipv6-modem-firewall3.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjIg6mydfzFpHzhTAsGxu_PSA2M2OQHqcv_ctAG7Smeqf6e3bSEy7MA8bctyTRIupUPtW5GZghilDxDHLK_-suGqfk1OdVL8H3ljYwryFNzsZWYk-jT3ZjdwUsSDP87EuW1UtRnOizXpw/s1600/ipv6-modem-firewall3.png" /></a>
<p>Note que basta não definir os IPs de origem e destino para que a porta TCP/22 seja permitida para toda a LAN.</p>
<h3>Ainda não acredito que meu NFS/SMB/rsync/HTTP/DNS/FTP não está vazando para a Internet</h3>
<p>Eu entendo. É difícil acreditar mesmo. Também custei a acreditar. <b>Mas há uma forma fácil de testar</b>: Eu uso o <a href="https://devio.us/" target="_blank">serviço de shell remoto devio.us</a> há vários anos e ele foi minha principal ferramenta para testar a conectividade entre minha pacata LAN e a tempestuosa Internet.</p>
<p>Exemplo de teste:</p>
<ol>
<li>Abrir no modem uma determinada porta. Por exemplo, a porta TCP/9000</li>
<li>Se não houver algum serviço escutando nessa porta, ponha o netcat para escutar: <code>nc -l 9000</code></li>
<li><code>ssh usuário@devio.us</code></li>
<li><code>usuário@devio.us $ nc -vz meu:ip:v6:do:laptop 9000</code></li>
<li>O resultado que indica sucesso é <code>nc</code> for <code>Connection to meu:ip:v6:do:laptop 9000 port [tcp/*] succeeded!</code></li>
<li>Agora experimente abrir <b>no laptop mas não no modem</b> alguma outra porta, por exemplo, a TCP/9001:<br/>
<code>nc -l 9001</code></li>
<li>Entre no shell remoto e tente se conectar a essa porta:</br>
<code>usuário@devio.us nc -vz meu:ip:v6:do:laptop 9001</code></li>
<li>O resultado que indica sucesso agora é <code>Connection timed out</code>, pois o modem não está permitindo essa conexão.</li>
</ol>
<p><b>E com isso nós provamos que o modem está protegendo sua LAN, mesmo quando você usa IPV6 e o seu laptop tem uma porta aberta.</b> Se você não abrir a porta no firewall do modem, ninguém no mundo conseguirá se conectar a essa porta no seu laptop.</p>
<h3>Próximos posts</h3>
<p>Sabia que é possível conectar duas redes IPv4 através da Internet usando uma VPN IPv6? Os próximos posts vão mostrar como fazer isso usando OpenVPN. É assim que eu conecto minha rede de casa à do meu <i>home office remoto</i>.</p>
<p>E também:</p>
<ul>
<li>Desempenho do IPv6 versus IPv4</li>
<li>Uma solução para associar de maneira estável o IPv6 dos hosts da sua LAN a um hostname (isso é complicado porque o provedor muda o prefixo IPv6 de tempos em tempos</li>
<li>Insira aqui uma sugestão de tema: _______________ :-)</li>
</ul>
<p>Um abraço e até a próxima!</p>
</div>Unknownnoreply@blogger.com0Rio de Janeiro, State of Rio de Janeiro, Brazil-22.9068467 -43.172896499999979-23.374864199999998 -43.818343499999976 -22.4388292 -42.527449499999982tag:blogger.com,1999:blog-4586939302561197282.post-88607183081327031452016-12-25T16:07:00.001-05:002017-02-20T12:17:47.818-05:00Natal IPv6: acenda as luzes desta árvore só com IPv6<div class="storybody">
<h3>E aí, já tá acessando a Internet com IPv6?</h3>
<p><a href="http://pablo.hess.net.br/2016/12/ipv6-ipv4-dual-stack-com-live-tim.html" target="_blank">Siga minha dica</a> e conecte-se via IPv6!</p>
<p>Se sim, você já pode acender as luzes de um <a href="http://ipv6tree.bitnet.be/" target="_blank">arvorezinha localizada na Bélgica</a>.</p>
<blockquote>Trivia: a Bélgica é líder mundial na adoção do IPv6. [<a href="http://www.networkworld.com/article/3100968/internet/why-belgium-leads-the-world-in-ipv6-adoption.html" target="_blank">Saiba por quê</a>]</blockquote>
<p>Funciona assim: você pinga somente via IPv6 um endereço que inclui o código RGB da cor que você deseja, aí uma das lâmpadas da árvore acende com a cor escolhida.</p>
<p>Alguns exemplos de cores:</p>
<code class="terminal">$ # Para acender VERMELHO:
$ ping6 2001:6a8:28c0:2017::<b>FF:00:00</b>
$
$ # Para acender VERDE:
$ ping6 2001:6a8:28c0:2017::<b>00:FF:00</b>
$
$ # Para acender AZUL:
$ ping6 2001:6a8:28c0:2017::<b>00:00:FF</b>
$
$ # Para acender AMARELO:
$ ping6 2001:6a8:28c0:2017::<b>FF:FF:00</b>
$
$ # Para acender na de código RGB 41-DF-A0:
$ ping6 2001:6a8:28c0:2017::<b>41:DF:A0</b></code>
<p>O site original <a href="http://ipv6tree.bitnet.be/">está aqui</a>.</p>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-85106287326505105482016-12-18T19:54:00.000-05:002017-02-20T12:18:17.238-05:00IPv6 + IPv4 (dual stack) com Live TIM<div class="storybody">
<p><span style="font-size: large;">Estou escrevendo este <b>longo</b> post a partir do meu laptop, em casa, conectado ao Gmail e ao Blogger via IPv6 sem passar por túneis.</p>
<p>Em outra aba do navegador, estou conectado ao <a href="https://www.reddit.com/" rel="nofollow" target="_blank">reddit</a> via IPv4 também sem precisar de túneis.</p>
<br />
<p>Esta é a conectividade IPv4 + IPv6 em <i>dual stack</i> que eu vinha buscando há alguns anos. Finalmente consegui, e descrevo aqui <b>o que foi necessário</b>, além de relatar<b> o que funciona </b>e<b> não funciona</b> conforme esperado.</span></p>
<br />
<div class="caixa">
<h3>Como consegui IPv4 e IPv6 em dual stack com a Live TIM</h3>
<blockquote class="tr_bq">
<i>Dual stack</i> (<i>pilha dupla</i>) é como se chama a conectividade simultânea às redes IPv4 e IPv6, entregue pelo provedor direto ao modem, sem emprego de <a href="http://ipv6.br/post/transicao/" target="_blank">técnicas de transição</a> como <a href="http://ipv6.br/post/tunnel-broker-via-hurricane-electric/" target="_blank">túneis</a>, <a href="https://youtu.be/uxu0ivaDAnc" target="_blank">CGNAT</a> ou outras artimanhas.</blockquote>
<p>(NOTA: Não recebi nem recebo nada da TIM para falar bem do serviço Live TIM.)<br /></p>
</p>Sou um feliz usuário do acesso à Internet pela <a href="http://www.livetim.tim.com.br/" rel="nofollow" target="_blank">Live TIM</a> há uns 2-3 anos em meus dois endereços na cidade do Rio de Janeiro: minha casa e meu escritório-doméstico-fora-da-minha-casa, carinhosamente apelidado de <i>mamma's home office</i>. ou M.H.O.</p>
<br />
<p>Meu acesso no M.H.O. (mamma's home office) tem velocidade de download de 70 Mbps e upload de 30 Mbps.</p>
<p>Em casa, o download é de 35 Mbps e o upload é de 20 Mbps.</p>
<h4>Solicitação à Live TIM, uma novela com final feliz</h4>
<p>Pedi à TIM para ativar conectividade IPv6 em casa. Porém, como não funcionou de primeira, foram feitos inúmeros contatos telefônicos, <b>uma verdadeira novela</b>, até eu conseguir a tão desejada conectividade IPv4 + IPv6 em dual stack.</p>
<p>A novela começou dia 6/setembro/2016, quando liguei pela primeira vez para o suporte técnico da Live TIM no 10341 e pedi para ativarem a conectividade IPv6 na minha conexão <b>sem perder a conectividade IPv4</b>. Para minha surpresa, disseram que “sim”. Eles me ligariam em até 5 dias úteis para configurar comigo o meu modem.</p>
<p>Ligaram.</p>
<p>Configuramos juntos o modem.</p>
<p>Não funcionou. :-(</p>
<h4>Ferramentas e comandos que ajudam a inspecionar o funcionamento do IPv6:</h4>
<ul>
<li><code>ping6 ipv6.google.com</code> (é o bom e velho ping, mas só utiliza IPv6.)</li>
<li><code>ip -6 address list</code> (lista seus endereços IPv6.)</li>
<li><code>ip -6 route list</code> (lista as rotas IPv6, inclusive a rota padrão.)</li>
<li><code>curl -6 uol.com.br</code> (visitar a página principal do UOL via IPv6. Deve retornar um longo código HTML.)</li>
</ul>
<p>Me pediram alguns dias para rever as configurações e também me pediram para visitar alguns sites de diagnóstico e enviar a eles os <i>screenshots</i>.</p>
<h4>Sites de diagnóstico:</h4>
<ul>
<li>http://test-ipv6.com/</li>
<li>http://ipv6.google.com</li>
<li>http://ipv6-test.com/ (especial atenção a este aqui e ao que ele diz sobre ICMP! É você, cliente, quem tem que configurar seu modem para deixar passar ICMPv6.)</li>
</ul>
<p>A cada nova ligação do suporte da TIM identificávamos mais uma dificuldade com a conexão, até que esgotamos <b>todas</b> e a TIM veio <b>trocar meu modem</b> por um Technicolor TD5336, que <b>finalmente funcionou</b> sem necessidade de alterar nenhuma configuração.</p>
<h4>Modems que estou usando com sucesso com IPv6, ambos fornecidos pela TIM após 1 ou mais trocas:</h4>
<ul>
<li>Technicolor TD5336</li>
<li>Sagemcom F@st 5310</li>
</ul>
<h4>Modems que <u>não</u> funcionaram com IPv6:</h4>
<ul>
<li>Sagemcom F@st 4310 (não recebia um IPv6, ou não retransmitia pacotes IPv6 à LAN)</li>
<li>Technicolor TG589vn v3 (não recebia um IPv6)</li>
<li>Zyxel VMG8924-B10A (recebia um IPv6 e retransmitia para a rede interna, mas perdia a maioria dos pacotes ICMPv6 vindos da WAN)</li>
</ul>
<blockquote class="tr_bq">
Nota: o suporte técnico da Live TIM sempre foi excelente em todas as <b>várias</b> interações que tive com eles. Me telefonaram inúmeras vezes, sempre absolutamente cordiais e educados, além de dedicados a resolver meu problema. Muitos desses telefonemas foram às 20:00, 21:00. De verdade, <b>ótimo serviço de suporte</b>.</blockquote>
</div>
<h3>Habemus IPv6. Como a Live TIM entrega um IPv6</h3>
<div>
<p>Com o novo modem, tudo funcionava conforme esperaddo: recebi um IPv4 (como de costume) e agora também um IPv6 sob o prefixo <code>2804:214:3:57cc::/64</code>. Absolutamente lindo.</p>
<p>Imediatamente pedi a ativação da conectividade IPv6 na outra conexão, isto é, no M.H.O.</p>
<p>Em ambos, assim é a configuração:</p>
<h3>Rede externa:</h3>
<p>IPv6 na interface WAN recebido via SLAAC (<i><b>S</b>tate<b>l</b>ess <b>A</b>ddress <b>A</b>uto<b>c</b>onfiguration</i>). O modem recebe do provedor apenas as rotas via RA (<a href="http://ipv6.br/post/funcionalidades-basicas/" target="_blank"><i><b>R</b>outer <b>A</b>dvertisement</i></a>). <strong><a href="https://community.infoblox.com/t5/IPv6-Center-of-Excellence/3-Ways-to-Ruin-Your-Future-Network-with-IPv6-Unique-Local/ba-p/5663" target="_blank">ULA</a> desativado</strong>.</p>
<h3>Rede interna:</h3>
<p>Com base nas rotas recebidas do provedor, o modem entrega à minha LAN os endereços IPv6 via DHCPv6. [<a href="https://supportforums.cisco.com/document/97586/dynamic-address-assignment-ipv6-using-slaac-and-dhcp" target="_blank">Mais detalhes de DHCPv6 versus SLAAC</a>]</p>
<h4>SLAAC</h4>
<p>Basicamente, um "servidor" SLAAC envia aos clientes a informação de <b>prefixo</b> IPv6 e também o <b>gateway padrão</b>. Nada mais. Nada de DNS, por exemplo. Se você quer que seu modem envie aos clientes o endereço dos servidores DNS, só o DHCPv6 te salvará: ative no seu modem o DHCPv6 interno e defina com ele os endereços dos servidores DNS que você quiser passar aos clientes.</p>
<h3>DNS em IPv6 e em IPv4</h3>
<p>Qualquer servidor DNS pode te retornar qual é o IPv6 da Wikipédia. E também o IPv4. Não importa se o seu servidor DNS está escutando na rede IPv4 ou IPv6, ele <b>certamente consegue retornar o IPv4</b> (registro <code>A</code>) <b>e também o IPv6</b> (registro <code>AAAA</code>) de <code>www.wikipedia.org</code> ou de qualquer URL.</p>
<p>Por exemplo, experimente:</p>
<code class="terminal">$ host -t A www.wikipedia.org 8.8.8.8
www.wikipedia.org has address 208.80.154.224
$
$ # Agora o registro AAAA
$ host -t AAAA www.wikipedia.org 8.8.8.8
www.wikipedia.org has IPv6 address 2620:0:861:ed1a::1
</code>
<p>O servidor DNS público do Google, que responde no IPv4 <code>8.8.8.8</code>, sabe me dizer que o endereço IPv4 (registro <code>A</code>ddress) de <code>www.wikipedia.org</code> é <code>208.80.154.224</code>, e também sabe me dizer que o IPv6 da mesma URL <code>www.wikipedia.org</code> é <code>2620:0:861:ed1a::1</code>.</p>
<p><strong>Ou seja, você não <u>precisa</u> fornecer servidores DNS na rede IPv6 para usar IPv6.</strong></p>
<h2>Como está minha LAN agora</h2>
<p>Com essas configurações, o modem entrega aos computadores da minha LAN um IPv4 privado (rede <code>192.168.x.y</code>) e também um IPv6 público. Cada computador também gera de forma autônoma um segundo endereço IPv6, este privado (<i>local-only</i> ou <i>somente local</i>, no prefixo <code>fe80::/64</code>.</p>
<blockquote class="tr_bq">
O espaço de endereços IPv6 possui alguns prefixos já pensados desde o início para uso exclusivamente em redes privadas, isto é, incapazes de alcançar a Internet e portanto dedicados unicamente à comunicação dentro de uma rede privada como a da minha casa. O prefixo <code>fe80::/64</code> é esse prefixo. [<a href="http://ipv6.br/post/enderecamento/" target="_blank">Mais</a>]</blockquote>
<div class="caixa">
<p><strong>Dado interessante:</strong> meu modem recebe na interface externa um IPv6 público <b>fora do meu prefixo</b>. Se meu prefixo dado pelo provedor é <code>2345:abcd:1234:5678::/64</code>, o modem pode perfeitamente ter o IPv6 público <code>9876:5432:1111:2222:3333:4444:5555:6666</code>.</p>
<p>Isso é possível porque meu modem <strong>não precisa</strong> ter um IPv6 público dentro do meu prefixo. Ele simplesmente encaminha à rede do provedor os pacotes que saem da minha LAN rumo à Internet.</p>
<p>No entanto, meu modem tem, sim, <b>um IPv6 privado</b> que só funciona na minha rede interna,<code>fe80::2a0:12f:fc31:e2e8</code>. Veja a rota que meu sistema atual mostra:</p>
<code class="terminal">$ ip -6 r
2804:214:3:57cc::254 dev wlp3s0 proto kernel ⤾
⤷ metric 256 expires 85483sec pref medium
2804:214:3:57cc::/64 dev wlp3s0 proto ra ⤾
⤷ metric 600 pref medium
fe80::fe52:8ddd:feb4:303b dev wlp3s0 proto static ⤾
⤷ metric 600 pref medium
fe80::/64 dev wlp3s0 proto kernel metric 256 ⤾
⤷ pref medium
default via fe80::fe52:8ddd:feb4:303b dev wlp3s0 ⤾
⤷ proto static metric 600 pref medium</code>
<br />
<p>Veja que interessante: meu <i>gateway</i> padrão na rede IPv6 usa o prefixo <i>somente local</i> <code>fe80::/64</code> (última linha do comando acima).</p>
<p>Os pacotes IPv6 que saem do meu sistema rumo à Internet têm como IPv6 de origem o meu endereço IPv6 público, mas são enviados ao meu modem por seu IPv6 <i>somente local</i>. Tudo bem, isso definitivamente não é um problema.</p>
</div> <!-- div da caixa -->
<h3>O que funciona nos meus acessos via IPv6</h3>
<ul>
<li>O acesso à Internet em IPv6 funciona maravilhosamente.</li>
<li>Todos os apps do Google (Drive, Docs, Sheets...), toda a Wikipédia, o site do UOL, o site da Red Hat. Estou acessando todos via IPv6.<br />
<blockquote>
Dica: extensão para Google Chrome que indica se você está acessando um site via IPv4 ou IPv6: <a href="https://chrome.google.com/webstore/detail/if-ipv6/nhemcdhdcfnncaemhjigipnloogkhpgg" target="_blank"><i>if IPv6</i></a>.
</blockquote>
</li>
<li>Consigo descobrir o endereço público do meu laptop a partir do próprio laptop, sem precisar de comandos como <code>curl [-4|-6] ifconfig.co</code> para ir até a Internet descobrir meu IP público. Basta usar o tradicional comando <code>ip</code>:<br />
<code class="terminal">$ ip -6 addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ⤾
⤷ state UP qlen 1000
inet6 <b><u><span style="color: #44ffaa;">2804:214:3:57cc:822c:4196:32b6:ea38/64</span></u></b> scope ⤾
⤷ global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::6212:3c69:21:f11a/64 scope link
valid_lft forever preferred_lft forever
$
$ # Confirmando com o curl
$
$ curl -6 ifconfig.co
2804:214:3:57cc:822c:4196:32b6:ea38
</code>
</li>
</ul>
<h3>O que não funciona</h3>
<br />
<h4>Meu IPv6 não é fixo! :-(</h4>
<p>Em poucas palavras, <u>o prefixo IPv6 que a TIM me entrega não é fixo</u>.</p>
<p>Em mais palavras, meu prefixo inicial <code>2804:214:3:57cc/64</code> gerou para meu laptop o endereço <code><b>2804:214:3:57cc:</b>9431:43ad:fa3:38ea</code>, que eu rapidamente adicionei ao DNS do meu domínio particular, todo orgulhoso.</p>
<blockquote class="tr_bq">
Eu realmente acreditei, por alguns momentos, que não precisaria mais de um DNS dinâmico como o dyndns para conseguir acessar meu servidor doméstico de qualquer lugar do mundo.</blockquote>
<br />
<br />
<p>Depois do primeiro reboot do modem, a surpresa: <u>o IPv6 do meu servidor doméstico tinha mudado</u>! Sob inspeção mais meticulosa, descobri que o prefixo fornecido à minha conexão pela Live TIM havia mudado. :-(</p>
<p>Resultado: voltei a precisar de um DNS dinâmico. Desde então estou usando o ultra-simples <a href="https://dynv6.com/" target="_blank">dynv6.com</a> com o script bem simples que ele próprio oferece. Meu servidor doméstico roda o script de atualização a cada 60 minutos e a vida segue. Um pouco triste, mas segue.</p>
<p>Dentro da minha LAN, uma possível saída é fazer referência ao IP <i>somente local</i> das máquinas em vez de usar o IP público. Isto é, meu DNS interno vai dizer que <code>tralala.redeinterna</code> aponta para <code><strong>fe80:</strong>:63a7:32:ff82:23fc</code> em vez de apontar para <code><strong>2804:214:3:57cc</strong>:63a7:32:ff82:23fc</code>. O endereço <i>somente local</i> das máquinas internas não muda. No entanto, isso significa que eu continuo tendo que usar um endereço diferente para me conectar a <code>tralala.redeinterna</code> se eu estiver dentro de casa ou fora de casa.</p>
<br />
<h4>Não tenho IPv6 reverso</h4>
<p>Veja estes comandos:</p>
<code class="terminal">$ host -t AAAA www.uol.com.br
homeuol.uol.com.br has IPv6 address 2804:49c:3103:401:ffff:ffff:ffff:1
$
$ # Agora a resolução reversa
$ host 2804:49c:3103:401:ffff:ffff:ffff:1
Host 1.0.0.0.f.f.f.f.f.f.f.f.f.f.f.f.1.0.4.0.3.0.1.3.c.9.4.0.4.0.8.2.ip6.arpa not found: 3(NXDOMAIN)</code>
<p>Ainda não encontrei o motivo para a resolução reversa de IPv6 não ser levada a sério.</p>
<h3>Segurança: a vida sem NAT</h3>
<p>Esse aqui fica para o próximo post.</p>
<br />
<p>Até breve!</p>
</div>
</div>Unknownnoreply@blogger.com6Rio de Janeiro, State of Rio de Janeiro, Brazil-22.9068467 -43.172896499999979-23.374864199999998 -43.818343499999976 -22.4388292 -42.527449499999982tag:blogger.com,1999:blog-4586939302561197282.post-16521622748188251412013-08-12T23:17:00.001-04:002017-02-21T07:11:52.435-05:00Have SSH prompt your users twice for their password
<p>
The SSH service is a vital part of IT management operations. However, keeping intruders out while allowing password authentication can be a pretty hard challenge. In this scenario, passwords are usually the weakest link: since security and convenience run in opposite directions, misinformed users will always look for some way to improve convenience at the cost of "a little" security. That's where they choose weak passwords that can be easily guessed by brute force.
</p>
<p>
Brute-force guessing passwords is a simple challenge that's mostly time-bound. The attacker typically tries every one from a list of common passwords until they are allowed into the target system. Failed passwords don't allow the attacker to tell whether they got only two or ten characters wrong. The easier to guess the password, the earlier it appears in the attacker's list. And the quicker the attacker can try another password, the quicker they reach the correct one.
</p>
<p>
Stalling the attacker with a short interval before they are allowed to enter a new password seems like a good plan, but the password guessing attack can be easily parallelized. A much better alternative is to ask your users to enter their password <i>twice</i>: the unknowing attacker will never try the same password twice in a row — why would they? — so even a password of "123" could keep them out, while attackers who know about this strategy will at least be stalled.
</p>
<p>
This post explains how to implement this strategy on Red Hat Enterprise Linux 6.x systems. For that, all you need to do is edit the <code>/etc/ssh/sshd_config</code> and <code>/etc/pam.d/sshd</code> files.
</p>
<h2>sshd_config</h2>
<p>
OpenSSH is a flexible daemon. It can perform password authentication with or without talking to PAM (Pluggable Authentication Modules). By default, Red Hat Enterprise Linux 6.x will <i>enable</i> sshd's use of PAM (<code>UsePAM yes</code> on <code>/etc/ssh/sshd_config</code>) for password authentication, which is part of what you'll need. It will also <i>enable</i> password authentication (<code>PasswordAuthentication yes</code> on the same file) and <i>disable</i> challenge-response authentication (<code>ChallengeResponseAuthentication no</code>, same file), which is the opposite of what's needed to ask the user to enter the password twice. So, first of all you will need to change these settings:
</p>
<pre>
#/etc/ssh/sshd_config
...
PasswordAuthentication no
...
ChallengeResponseAuthentication yes
...
</pre>
<p>
(Documentation on <b>sshd_config(5)</b>)
</p>
<h2>PAM configuration</h2>
<p>
The file controlling PAM's behavior when authenticating SSH users on Red Hat Enterprise Linux 6.x is <code>/etc/pam.d/sshd</code> and it looks like this by default:
</p>
<pre>
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
...
</pre>
<p>
This means that when sshd asks PAM to authenticate a user, PAM will first consult the <code>pam_sepermit.so</code> module, which checks the <code>/etc/security/sepermit.conf</code> file for users who should be allowed or denied authentication access by SELinux (<b>pam_sepermit(8)</b>). Then, PAM will open the <code>/etc/pam.d/password-auth</code> and read all lines starting with <code>auth</code> in order to know what to check next.
</p>
<p>
The <code>/etc/pam.d/password-auth</code> file looks like this:
</p>
<pre>
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
...
</pre>
<p>
These <code>auth</code> lines mean that PAM will use the <code>pam_env.so</code> module to set and unset environment variables defined in <code>/etc/security/pam_env.conf</code> (<b>pam_env(8)</b>). After that, the <code>pam_unix.so</code> module will perform the traditional password checks, i.e. <code>/etc/shadow</code> when using local files (<b>pam_unix(8)</b>), and PAM will consider this sufficient to authenticate the user.
</p>
<p>
If you duplicate the <code>pam_unix.so</code> line and change PAM's view of this check to <code>required</code> instead of <code>sufficient</code>, you will effectively ask PAM to check the traditional authentication sources twice.
</p>
<p>
Note, however, that the comments in <code>/etc/pam.d/password-auth</code> state that this file is auto-generated and that "changes will be destroyed the next time authconfig is run". Additionally, this file is used by many other programs and daemons when authenticating users and changing it would alter the behavior of authentication for all those other programs and daemons.
</p>
<p>
The only safe path is to copy the <code>auth</code> lines from this file to sshd's specific file, i.e. <code>/etc/pam.d/sshd</code>, and comment out the line that called <code>/etc/pam.d/password-auth</code>. This is what you get:
</p>
<pre>
# /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
# auth include password-auth
# The following lines have come from the password-auth file
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
# End of lines coming from password-auth
account required pam_nologin.so
...
</pre>
<p>
Now you can duplicate the <code>pam_unix.so</code> line and ask PAM to <b>require</b> this check to pass before it is tested a second time:
</p>
<pre>
# /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
# auth include password-auth
# The following lines have come from the password-auth file
auth required pam_env.so
auth required pam_unix.so nullok try_first_pass
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
# End of lines coming from password-auth
account required pam_nologin.so
...
</pre>
<p>
You are almost there. If you try to ssh to this machine right now, you'll only be prompted for the password once. That's because the <code>try_first_pass</code> argument to the <code>pam_unix.so</code> module tells the <code>sufficient</code> line to try the password that has just been given, which defeats the purpose of the duplicate password prompt.
</p>
<p>
So, remove the <code>try_first_pass</code> argument from the second line to make it actually ask for the password a second time:
</p>
<pre>
# /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
# auth include password-auth
# The following lines have come from the password-auth file
auth required pam_env.so
auth required pam_unix.so nullok try_first_pass
auth sufficient pam_unix.so nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
# End of lines coming from password-auth
account required pam_nologin.so
...
</pre>
<p>
That's it. Try to ssh to the target system and check if everything goes as planned. Feel free to use <code>ssh -v</code> (repeated <i>v</i>'s for more verbosity) if something goes wrong.
</p>
<h2>Further stalling the attacker</h2>
<p>
As the attacker may come prepared to try every single password twice, you can at least stall them by running <code>/usr/bin/sleep 2</code> between password prompts. PAM allows you to do this with the <code>pam_exec.so</code> module (<b>pam_exec(8)</b>). Your <code>/etc/pam.d/sshd</code> file should then look like this:
</p>
<pre>
# /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
# auth include password-auth
# The following lines have come from the password-auth file
auth required pam_env.so
auth required pam_unix.so nullok try_first_pass
auth optional pam_exec.so quiet /usr/bin/sleep 2
auth sufficient pam_unix.so nullok
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
# End of lines coming from password-auth
account required pam_nologin.so
...
</pre>
<p>
Now your system is ready to offer the convenience of password authentication with reduced a risk of giving in to brute-force attacks.
</p>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-79328792369529764532013-01-13T22:16:00.001-05:002017-02-23T09:29:34.593-05:00Suporte técnico da GVT: ruim na primeira impressão<h3>Nota importante: Este post é de 2013. Desde a publicação deste post, a GVT já foi comprada e muita coisa provavelmente mudou, como a qualidade do serviço de acesso à Internet e também do suporte técnico.</h3>
Meu modem da GVT tem suporte a IPv6. No entanto, ele não recebe um endereço IPv6 da operadora. E eu queria acessar a rede IPv6.<br />
<br />
Aqui está a interessante transcrição (só da minha memória) da minha conversa agora há pouco com o suporte técnico da GVT.<br />
<br />
- Boa noite, Fulana falando.<br />
- Boa noite. Por favor, eu gostaria de saber se é possível ativar o IPv6 no meu acesso banda larga e se eu preciso pagar alguma coisa por isso.<br />
- Senhor, isso o senhor precisa verificar com o seu consultor, não com a GVT.<br />
- Por quê?<br />
- Quem dá acesso a IPv6 é o Windows. Se o senhor tiver o Windows Vista, aí é IPv6. Se for o Windows 7, aí tem que ver.<br />
- Desculpe, mas a senhora está enganada. Eu trabalho com isso e sei do que estou falando <i>(É tão satisfatório poder dizer isso, né?)</i>. Eu gostaria de acessar a Internet por IPv6 e, para isso, a GVT precisa me fornecer conectividade IPv6.<br />
- Senhor, a GVT não oferece suporte a IPv6. <i>(surpreendente como de repente ela sabia do que se tratava, né? Aposto que não sabia.)</i><br />
- Mas o suporte a IPv6 não era obrigatório a partir de janeiro de 20<b>12?</b> <i>(tá bom, inventei um pouco nesse aspecto de obrigatoriedade, mas o objetivo era forçar um pouco a barra)</i><br />
- Não tenho esta informação. Nada nos foi passado em treinamentos.<br />
- Bom, está bem então. Obrigado.<br />
<br />
E assim terminou.<br />
Puxa vida, assinei a GVT com tanto gosto, justamente em virtude dos ótimos relatos que sempre ouvi sobre o respeito que a empresa tem pelos clientes. Não achei esse suporte satisfatório.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4586939302561197282.post-87136422842291267632011-10-31T16:53:00.000-04:002011-10-31T16:53:58.454-04:00A nação que eliminou a corrupçãoDiz a lenda que havia no mundo uma nação muito exaltada por sua musicalidade, sua criatividade, suas belezas naturais e pela hospitalidade de seu povo. Essa mesma nação era também conhecida por sua intensa violência crônica e, sobretudo, pela corrupção de sua classe política.<br /><br />Curiosamente, a lenda também conta que foi a violência que acabou com a corrupção. Certo dia, um dos cidadãos violentos dessa nação, profissional do ramo da execução por encomenda, descobriu uma nova forma de erradicar a corrupção: eliminando os políticos corruptos e seus respectivos corruptores. Contudo, havia dois entraves no caminho: o serviço desse profissional era caro, pois tratava-se de um dos melhores do ramo, e o número de corruptos e corruptores era assombroso.<br /><br />Felizmente para o povo, o mesmo cidadão tão violento era igualmente inteligente. Maquinou um plano chamado por muitos de "surpreendentemente simples, economicamente viável e psicologicamente adequado" para eliminar os maiores inimigos do progresso de sua nação: criou um "Fundo de Erradicação da Corrupção". Nesse fundo, cidadãos de todo o território nacional podiam depositar a quantia que desejassem a fim de alcançar os altos valores cobrados pelo profissional violento e inteligente para executar seu serviço correcional.<br /><br />Como a corrupção era um fenômeno absolutamente descarado e nada se fazia para escondê-la, foi bastante fácil compilar a lista dos principais corruptos e corruptores.<br /><br />O sistema de doações voluntárias também resolvia o problema psicológico da execução de seres humanos: os doadores do FEC, como foi abreviado o fundo, evitavam sujar as mãos e também a consciência, pois eram agentes apenas indiretos das execuções.<br /><br />O primeiro saque do fundo deu cabo do personagem ativo há mais tempo na cena da política corrupta. Belo cartão de visita do atirador-empreendedor. Aprovada e aplaudida pela população, a execução rendeu tantas doações ao FEC que em pouco tempo havia recursos suficientes para finalizar outros dois líderes da lista CC (corruptos & corruptores). Com a ausência dessas três figuras tão importantes no cenário político nacional, os três poderes decretaram recesso e paralisaram suas ações. Porém, o novo quarto poder ("executor", como ficou conhecido) logo indicou que não era isso que a população esperava de seus supostos representantes: o próximo da lista sofreu um estranho acidente de avião.<br /><br />Ninguém sabia ainda quem era o cidadão-atirador-empreendedor, mas já se falava em elegê-lo ao cargo máximo. Ainda anônimo, ele respondeu que não tinha aspirações políticas: "Quero apenas fazer meu trabalho e ganhar um dinheiro honesto. Talvez abrir um restaurante ou uma fundação com a renda desses serviços.". Grande profissional.<br /><br />Quanto à política e os políticos, o poder executor conseguiu levar a nação para o caminho da democracia. Movidos pelo medo, integrantes dos três poderes tradicionais passaram a trabalhar em prol da nação. Com a redução que "benevolentemente" fizeram em seus próprios gastos, conseguiram melhorar rapidamente a qualidade da saúde e da educação, dos transportes e da previdência, do planejamento e até do turismo.<br /><br />O cidadão-atirador-empreendedor permanece incógnito; dizem que se aposentou e abriu um restaurante ou criou uma fundação. O fato é que, vez por outra, quando os políticos ameaçam fazer corpo mole, ele -- ou um de seus inúmeros admiradores -- faz questão de cravar seus cartões de visita em portas de carro, paredes e travesseiros bem próximos às cabeças certas, como que dando a elas uma chance.<br /><br />Atualmente, essa nação praticamente erradicou a corrupção. É próspera e oferece alta qualidade de vida a seus cidadãos, que, mesmo sem as desgraças que os assolavam, permanecem extremamente musicais, criativos e hospitaleiros, além de continuarem em um território, dizem seus criativos músicos, bonito por natureza.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4586939302561197282.post-42597224567327602992010-05-31T23:02:00.000-04:002010-05-31T23:02:46.999-04:00Tux na cozinhaNo último sábado, quando voltava de viagem, fui surpreendido pela presença do famoso pinguim Tux, mascote do nosso amado Linux, em um item em nada relacionado com computadores.<br />
<br />Enquanto esperava meu táxi na saída do terminal 1 do aeroporto de Guarulhos, SP, vi uma senhora perambulando para lá e para cá numa cadeira de rodas. Ela parecia esforçar-se muito para mover a própria cadeira, então ofereci uma mãozinha: "A senhora quer ajuda?".<br />
<br />
A resposta foi um pouco inesperada devido à minha solicitude ter sido, na verdade, a mordida na isca lançada pela oportunista senhor: "Ah, meu filho, não preciso não, mas você sabe, eu preciso me sustentar e é muito difícil, então eu estou vendendo esses panos de prato que eu mesma faço, sabe, (...)".<br />
<br />
Entre os panos de prato, um me chamou atenção: tinha várias imagens do Tux, imagine só!<br />
<br />
Como dizia aquele personagem, "comprei-o-o" da tagarelante senhora. Eu disse: "Vou levar este do pinguim, porque gosto muito de pinguins". E ela: "Ah sim, esse aí é a família inteira; o pai, a mãe e os três filhinhos".<br />
<br />
Taí a relíquia<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFcQCjUFa-caMFeM4XZ3ErFuaoGsjfGJLgssrlE03bw8UK9P_45B6ZQoE0xossIXioqRUpxJ-aWogI5Y7DdnCy2ItiaiYuwKUie8RHBeva-cfRdVe6E7450nL0sJQymJ2bkI7InT8o0Ac/s1600/pano-tux-decente.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFcQCjUFa-caMFeM4XZ3ErFuaoGsjfGJLgssrlE03bw8UK9P_45B6ZQoE0xossIXioqRUpxJ-aWogI5Y7DdnCy2ItiaiYuwKUie8RHBeva-cfRdVe6E7450nL0sJQymJ2bkI7InT8o0Ac/s320/pano-tux-decente.jpg" /></a></div>
<br />
Os pinguins não são bordados, evidentemente, mas estampados com o método mais comum. Confira neste detalhe em maior resolução:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibLbBYCTSeY3cqYCeOpUJVhOoF2Va-89aq76fMkVH34fTIXzRZmW8BPsoP4BGiwoHYEohXYttFFFkacxRaovPgRn8jUUzjEwSg5xdaUjNUioHcIb2Vw-DggSmqxVdyvgRt09CyslH_JME/s1600/pano-tux-detalhe.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibLbBYCTSeY3cqYCeOpUJVhOoF2Va-89aq76fMkVH34fTIXzRZmW8BPsoP4BGiwoHYEohXYttFFFkacxRaovPgRn8jUUzjEwSg5xdaUjNUioHcIb2Vw-DggSmqxVdyvgRt09CyslH_JME/s320/pano-tux-detalhe.jpg" /></a></div>
<br />
Agora tenho um tux na cozinha também. E esse é totalmente exclusivo!Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-4586939302561197282.post-34561032822227530192008-12-29T17:00:00.000-05:002008-12-29T17:00:01.896-05:00Orgulho editorial<p>Desde que eu entrei na <a href="http://www.linuxnewmedia.com.br">Linux New Media (do Brasil)</a>, em julho de 2006, acho que tenho melhorado profissionalmente. Não tenho tantos artigos técnicos de minha autoria quanto eu achei que teria depois de 2 anos e meio – afinal, não dá tempo pra editar <strong>e</strong> escrever tantos artigos.</p>
<p>Mas a seção fixa que eu escrevo me dá muito orgulho, porque acho que quando estou inspirado eu escrevo bons textos. Então, pra promover a <a href="Linux Magazine">Linux Magazine</a>, este blog e eu mesmo (:D), aqui vão meus oito <a href="http://lnm.com.br/lm/categories/29">editoriais</a> preferidos:</p>
<ol>
<li value="8">Em <a href="http://lnm.com.br/article/compreensao_formal"><i>Compreensão formal</i></a> (LM 35), terminou a série de editoriais em tom de reclamação sobre a comunidade de desenvolvedores do Software Livre (iniciados na LM 32). Nele, declarei minha posição contra a polêmica apropriação dos drivers <i>ath5k</i> por essa comunidade sob a GPL, após sua criação sob a licença BSD. Achei a apropriação imoral, e ainda a julgo ilegal, apesar de ninguém ter perguntado e da minha opinião não ser de forma alguma relevante.</li>
<li value="7">Em <a href="http://lnm.com.br/article/coerencia_e_coesao"><i>Coerência e coesão</i></a> (LM 33), fui novamente corajoso e critiquei a atitude de vários usuários e desenvolvedores contrários à cobrança de dinheiro para implantação e desenvolvimento de soluções livres.</li>
<li value="6">Em <a href="http://lnm.com.br/article/comunidade_como_valor"><i>Comunidade como valor</i></a> (LM 47), falei da importância crescente da comunidade para as empresas envolvidas com o Código Aberto. O surgimento do cargo de “community manager” é, pra mim, o maior exemplo dessa importância.</li>
<li value="5">Em <a href="http://lnm.com.br/article/as_velhas_falacias"><i>As velhas falácias</i></a> (LM 45), falei sobre a crença muito difundida de que o Windows é mais invadido do que o Linux por ser mais usado, e não por ser muito mais vulnerável. Gostei desse por acreditar de fato que o texto poderia ajudar profissionais Linux.</li>
<li value="4">Em <a href="http://lnm.com.br/article/novos_modelos"><i>Novos modelos</i></a></li> (LM 46), o assunto foi o anúncio da IBM de que produziria desktops “Microsoft-free”. Embora parecesse um ato de suposto boicote aos softwares da Microsoft, o objetivo real da IBM era e ainda é usar o Linux como plataforma de difusão de sua suíte Lotus. O surpreendente, pra mim, foi ver que o mercado demorou pra perceber essa oportunidade de ouro!</li>
<li value="3">Em <a href="http://lnm.com.br/article/um_bom_motivo"><i>Um bom motivo</i></a> (LM 32), reuni coragem para criticar a atitude de usuários e desenvolvedores Linux e citei uma colocação muito bem feita de Theo de Raadt: “Quem usa Linux o faz porque odeia o Windows, quem usa BSD o faz porque ama o Unix”. Por um lado essa frase sugere que nosso mundo é cheio de ódio (há muito mais pessoas que odeiam o Windows do que pessoas que amam o Unix, aparentemente). O bom motivo que serviu de titulo ao editorial foi a discussão sobre a GPLv3, então ainda em desenvolvimento, ao mesmo tempo em que a Microsoft distribuía acordos com distribuidores Linux importantes e nem tanto.</li>
<li value="2">Em <a href="http://lnm.com.br/article/a_vez_do_marketing"><i>A vez do marketing</i></a> (LM 40), propus uma abordagem colaborativa para o marketing dos sistemas Linux. Esse assunto ainda é do meu interesse mais profundo, e acho realmente que o marketing é uma das próximas áreas a serem agraciadas com as inúmeras vantagens da colaboração.</li>
<li value="1">O primeiro colocado na minha lista pessoal de editoriais mais significativos é o <a href="http://lnm.com.br/article/idiomas_e_sistemas"><i>Idiomas e sistemas</i></a> (LM 30), escrito às 3 da manhã antes de um Linux Park. Nele, eu falo sobre como o uso de um computador se assemelha ao uso da linguagem oral, com os diferentes sistemas operacionais representado os vários idiomas. Eu defendo o ensino do Linux nas escolas, da mesma forma que defendo o ensino do inglês nas escolas brasileiras (e outros idiomas seriam ainda mais positivos para nossas crianças). No caso dos sistemas, se o aluno já vai aprender o Windows fora da escola mesmo (todo mundo usa Windows no momento, certo?), que tal torná-lo “poliglota” e ensinar-lhe um sistema diferente e potencialmente muito útil na escola?</li>
</ol>
<p>E você? Qual é o seu editorial preferido na Linux Magazine?</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4586939302561197282.post-41652904041458749942008-06-08T01:40:00.002-04:002008-06-08T02:01:08.512-04:00O sucesso da GPL é um milagre?<p>Antes de começar esse post, quero deixar claro que adoro software GPL, sempre tenho preferência por usar Software Livre (e ainda escrevo com letras maiúsculas!) e, não por acaso, ganho a vida escrevendo sobre Código Aberto (também com letra maiúscula!).</p>
<p>Acho um pouco estranho um software GPL como o (kernel) Linux ter alcançado a ampla difusão mais rápido do que seus equivalentes licenciados sob a licença BSD.</p>
<div id="box">
<h1>Entenda as diferenças</h1>
<p>De uma forma extremamente simplificada, a GPL exige, entre outras coisas, que o código-fonte de todo programa seja disponibilizado para o usuário sem custo adicional. Além disso, ela demanda que toda alteração feita ao código-fonte de um programa, ao ser redistribuída, seja entregue de volta à comunidade. Com isso, é obrigatório compartilhar com a comunidade todos os avanços implementados no programa.</p>
<p>A BSD, por sua vez, é muito mais permissiva. Qualquer software licenciado sob a BSD pode ser redistribuído sem o código-fonte, e as alterações feitas ao código não precisam ser compartilhadas com ninguém. Porém, se forem compartilhadas com a comunidade, essas alterações devem seguir a licença BSD. Ou seja, basicamente a BSD permite que se faça o que quiser com o código, inclusive fechá-lo à vontade.</p>
</div>
<p>O que me leva a esse pensamento é que a BSD parece muito mais viável comercialmente do que a GPL. Na GPL, a obrigatoriedade do retorno do código alterado à comunidade é ótima para a comunidade, claro. Porém, para empresas que desejem usar esse código em seus produtos, acrescentando a ele algumas alterações, essa obrigação <b>pelo menos parece</b> um problema.</p>
<p>No início da popularização do Software Livre, a GPL era chamada de "câncer" justamente por isso: ela "contaminava" os softwares desenvolvidos a partir de outros que a adotassem, obrigando o fabricante a retornar à comunidade trechos que ele não desejava. Então, a adoção do Software Livre como base para o desenvolvimento seguiu a lenta percepção das empresas de que colaborar é melhor do que reinventar a roda.</p>
<p>Com código BSD, essa percepção de que colaborar é melhor do que reinventar a roda poderia surgir mais gradativamente. Com uma base de código de alta qualidade liberada sob a BSD para todas as empresas, todas poderiam tomá-lo para si e desenvolver sobre ele, sem retornar nada a princípio. Porém, certamente algumas perceberiam as vantagens de retornar à comunidade pelo menos alguns trechos.</p>
<p>Com uma barreira de entrada reduzida, mais empresas usariam código aberto (BSD, no caso). Assim, existiria o argumento de que "quase todo mundo usa nosso software", o que, por sua vez, creio que facilitaria na hora de convencer as empresas usuárias e desenvolvedoras de que o código aberto tem boa qualidade e portanto vale a pena todos compartilharem seus desenvolvimentos com o restante da comunidade.</p>
<p>É claro que eu sei que isso não aconteceu, e que houve motivos. Só não sei exatamente quais foram esses motivos. Sugestões?</p>Unknownnoreply@blogger.com8tag:blogger.com,1999:blog-4586939302561197282.post-78190335503958359382008-05-11T01:22:00.007-04:002010-08-12T10:09:50.144-04:00Substituição de fontes pra todo o sistemaMeu Firefox é uma ferramenta que funciona muito bem. Não instalo muitas extensões e ele me satisfaz perfeitamente. Quando preciso de algo a mais, geralmente já existe a extensão para a tarefa, o que torna a coisa toda muito mais agradável. Não amo o Firefox, mas ele é <i>bõ</i>™.<br />
Só que hoje eu percebi uma falha dele: não facilitar a substituição de fontes de forma granular. Ou seja, ou você define as suas próprias fontes e visualiza todas as páginas com essas fontes específicas, ou você deixa as páginas fazerem como quiserem.<br />
Eu geralmente deixo as páginas usarem as fontes que quiserem, o que não costuma causar problemas. Exceto pelas que cismam em usar Helvetica. Acontece que a Helvetica não sofre anti-aliasing na tela, o que significa que ela fica toda imperfeita (serrilhada).<br />
A solução: mexer no arquivo <code>/etc/fonts/conf.d/51-local.conf</code> (no Gentoo é esse nome, mas em outras distribuições deve ser diferente) e inserir algumas linhas entre as tags <code><fontconfig></code> e <code></fontconfig></code>para fazer o sistema sempre usar <i>DejaVu Sans</i> (minha preferência para fontes não serifadas) no lugar da feiosa:<br />
<code>/etc/fonts/conf.d/51-local.conf</code><br />
<pre><match target="pattern">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>DejaVu Sans</string>
</edit>
</match></pre>
Depois disso, suas Helveticas sempre vão sair como DejaVu Sans.<br />
<dl>Fonte: <a href="http://forums.bsdnexus.com/viewtopic.php?pid=12222">http://forums.bsdnexus.com/viewtopic.php?pid=12222</a></dl>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-4586939302561197282.post-25004701031114038822008-02-17T19:29:00.004-05:002008-06-01T01:02:58.156-04:00Ô Intel, dá uma caprichada, vai... [atualizado]<p>O adaptador de rede wi-fi do meu notebook é um Intel 3945. O da minha mulher (um Macbook da primeira geração) também. Na verdade, por dentro os dois computadores são relativamente parecidos: mesmo chip gráfico, mesmo adaptador de rede wi-fi, processadores semelhantes.</p>
<p>O que é mais marcantemente diferente entre as duas máquinas -- fora o fato de o Macbook ser muito mais bonito, é claro -- é o sistema operacional: o meu é Linux e o dela é Mac OS X.</p>
<p>Mas essa diferença relativamente pequena tem um efeito em particular que é bastante grande: o funcionamento do adaptador wi-fi. Nosso roteador wi-fi fica no apartamento ao lado, que é da minha prima (é ela que tem o acesso à Internet, e nós pegamos emprestado). No Mac, basta ligar o sistema (aliás, que boot rápido! -- um sonho) e esperar uns 5 segundos que o ícone informa que já está conectado à nossa rede com criptografia WPA-PSK.</p>
<p>Já nos meus Linux (Gentoo e Ubuntu -- Mint, na verdade, mas no Ubuntu original também acontecia) a coisa é um tanto mais demorada. Depois de terminar o boot e subir o X automaticamente, entrando sozinho no Gnome sob o meu usuário padrão (segurança pra quê, né?), espero mais 1 minuto ou mais pra ser informado de que meu adaptador wi-fi está negociando a autenticação com o roteador. Eu tenho que me movimentar pelo apartamento, mesmo que eu comece a "negociação" no canto do apartamento que fica mais próximo ao roteador, pra conseguir autenticar lá pela quinta tentativa, depois de dar <span style="font-style:italic;">time out</span> quatro vezes.</p>
<p>Se a principal diferença entre os dois computadores é o sistema operacional, eu pergunto: por que o driver pra esse adaptador de rede é tão pior no Linux do que no Mac OS X?</p>
<p>É a própria Intel que produz o driver pra Linux! E imagino que também seja o caso no Mac OS. Então, o que que custa fazer o driver decentemente?</p>
<p>Por favor não me venham com essa de "o código é aberto, você pode implementar o que quiser ou ajudar a melhorar sua qualidade". Repetindo: a mesma Intel faz os dois drivers, sendo que um funciona como deveria e o outro é um certo suplício.</p>
<p>É claro que eu fico muito, mas muito feliz MESMO pelo driver para Linux receber "atenção oficial" da todo-poderosa Intel. Senão, não teria feito questão de comprar um laptop que é todo Intel por dentro. Mas vamos lá, Intel, nós sabemos que vocês são capazes de fazer um driver que funcione pelo menos tão bem quanto o do Mac OS X.</p>
<p>Se alguém por acaso quiser discutir isso, ou argumentar que é o meu kernel que é ruim, aí vão os detalhes:</p>
<ul>
<li>O driver ipw3945, que precisava do daemon regulatório ipw3495d, funcionava ainda pior. Kernels de ~2.6.16 até 2.6.20 ou 2.6.21, não me lembro ao certo.</li>
<li>O driver iwlwifi já funciona um pouco melhor, desde o começo, com kernel 2.6.21 ou algo assim, até agora, com o kernel 2.6.24.2, com o driver já junto do kernel (mas compilado como módulo, já que embutido realmente não funcionou).</li>
<li>Kernels testados: Vanilla (o do kernel.org) e Gentoo-sources, além dos oficiais do Ubuntu desde o 6.10 até o 7.10.</li>
</ul>
<h3>Atualização</h3>
<p>Aparentemente, a julgar pelas reações, o meu caso de insucesso com a placa wi-fi Intel é particular. Mas a solução que funcionou <b>pra mim</b> foi colocar o roteador no meu próprio apartamento. Agora, a rede entra rapidinho todas as vezes.</p>
<p>Hmpf.</p>Unknownnoreply@blogger.com11tag:blogger.com,1999:blog-4586939302561197282.post-46019081604338268672007-12-04T21:16:00.000-05:002007-12-04T22:32:44.806-05:00Natureza que nada! Salve as pessoas!<p>No último fim de semana fui assistir <b><a href="http://www.ciberduvidas.com/pergunta.php?id=18994">ao</a></b> filme "<a href="http://www.imdb.com/title/tt0492931/">A Última Hora (<i>the 11th. hour</i>)</a>". Aí vai minha opinião, pros que por acaso se interessarem.</p>
<p>Gostei do filme. Acho que seu maior valor foi apontar algumas coisas que raramente vemos pessoas dizendo aos quatro ventos. Por exemplo, <b>ninguém deve querer realmente salvar <u>a natureza</u></b>. Ainda que o homem desmate a Amazônia inteira e as calotas polares derretam, <b>a natureza vai continuar existindo, e vai se recuperar!</b> Nós queremos é manter o planeta habitável para nós mesmos, caramba!</p>
<p>Se alterarmos o comportamento da natureza de tal forma que ela se torne imprevisível (e isso é justamente o que o aquecimento global faz), vai ser muito difícil restar algum humano nesse planeta. Lembre-se de que em ambientes destruídos surgem as piores manifestações de que somos animais como qualquer outro: sofremos de epidemias terríveis e passamos a nos comportar de forma radicalmente selvagem (estupros, roubos, assassinatos...)</p>
<p>Então, <b>ponto 1: salve a espécie humana. Para isso, conserve o restante da natureza</b>.</p>
<h2>Ponto 2</h2>
<p>O segundo ponto tem a ver com energia. Nós gastamos mais energia do que a Terra recebe do sol.</p>
<p>A explicação: Nosso planeta sempre recebeu energia <b>unicamente do sol</b>. A energia do sol é convertida em várias outras formas de energia, tanto por seres vivos (nas cianobactérias e plantas: água + gás carbônico + luz = açúcar = energia) quanto por outros agentes (sol atrai a massa d'água dos oceanos -> maré sobe e desce [a lua também atua]). Por <b>sorte</b> nós temos gases que causam <b>efeito estufa</b>, porque eles conservam boa parte dessa energia na superfície do planeta, impedindo que essa energia simplesmente escape pro espaço.</p>
<p>Mas queimar petróleo é "trapaça". É gastar uma energia que não foi o sol que deu (pelo menos não recentemente). O resultado: um efeito estufa exagerado, que conserva <b>muito</b> calor aqui dentro do nosso planeta.</p>
<p>Relembrando o <b>ponto 2: queimar combustível fóssil é "roubo".</b></p>
<h2>Ponto 3</h2>
<p>Reduzir o consumo de energia não significa vestir-se com pele de animais ou usar folhas para "esconder as vergonhas". Nós já temos tecnologia. Podemos reduzir o consumo construindo <a href="http://www.arcoweb.com.br/tecnologia/tecnologia32.asp">prédios mais eficientes no uso de energia</a>, usando meios de transporte menos poluentes (quem me dera poder ir pro trabalho de bicicleta – mas metrô tá bom) e, quando não for possível <b>reutilizar</b>, <b>reciclar</b> tudo que for possível.</p>
<p>Ou seja, <b>ponto 3: a tecnologia atual permite toda a redução de consumo energético de que precisamos. Ninguém precisa andar pelado ou dormir ao relento.</b></p>
<h2>Ponto 4</h2>
<p>Atualmente pagamos uma baba pela energia que algumas empresas extraem do (sub)solo. Ou seja, gastamos dinheiro para obter uma energia que é trapaça, como já vimos no ponto 2.</p>
<p>Se deixássemos de gastar esse dinheiro todo com extração e refino de petróleo e instalássemos captadores de energia limpa (que vem do sol, direta ou indiretamente) e renovável, como a eólica, a solar ou a de maré, por exemplo, teríamos um gasto muito menor a longo prazo. Isso significa mais dinheiro para gastarmos em:</p>
<ul>
<li>Construção</li>
<li>Pesquisa e desenvolvimento de novas formas de energia</li>
<li>Serviços</li>
<li>O que mais quiséssemos</li>
</ul>
<p>Em suma, <b>ponto 4: trocar o petróleo por fontes limpas de energia é <i>bom<sup><small>TM</small></sup></i>, e não ruim, para a economia</b>.</p>
<p>O abandono dos gastos com extração e produção de petróleo <b>não pioraria a economia; muito pelo contrário, melhorá-la-ia</b> (apresento-lhes a mesóclise)<b>, pois colocaria mais dinheiro à disposição da criação de emprego e desenvolvimento econômico como um todo</b>. <i>(Nessa conclusão eu posso estar enganado, porque não entendo nada de economia. Mas no filme falaram isso, e fez sentido.) :)</i></p>
<h2>Outros pontos interessantes</h2>
<p>O filme é feito por americanos e para americanos. Até o meio do filme isso me deixou meio chateado. Mas aí eu percebi que os EUA, como centro da atual cultura de consumismo desenfreado – um ponto cuja relação com o aquecimento global o filme deixa bem claro –, responsável por algo como 25% do consumo mundial de energia, é também onde essa cultura contrária precisa surgir. Se eles próprios se convencerem de que precisam mudar, a exportação natural dessa nova cultura deles vai chegar a todos que contraíram o consumismo desenfreado da mesma forma.</p>
<h2>E o Linux nisso?</h2>
<ol>
<li>Trate com carinho a economia de energia em seus desktops, notebooks <b>e servidores</b>. Todo consumo inútil de energia é prejudicial.</li>
<li>Só deixe seu computador ligado a noite inteira se for necessário.</li>
<li>Já mencionei os recursos de economia de energia?</li>
<li>ACPI, APM... Mesmo em desktops e servidores. Ah, já falei isso?</li>
<li>Sou só eu ou alguém mais começou a achar o <a href="http://www.gentoo.org">Gentoo</a> agressivo ao meio ambiente?</li>
</ol>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-4586939302561197282.post-90070719837001303322007-11-06T21:00:00.000-05:002007-11-06T22:10:34.740-05:00Outros usos para o desenvolvimento colaborativo<p>O paradigma do desenvolvimento colaborativo é provavelmente a principal inovação tecnológica surgida no final do século passado. Após surgir na área do desenvolvimento de software, foi necessário o florescimento da Internet como infra-estrutura para que ele alcançasse maior visibilidade e eficácia.</p>
<p>Agora, o desenvolvimento colaborativo já está instituído em seu berço, e as maiores empresas da área de tecnologia, como Google, Microsoft, Oracle, IBM, HP, para citar algumas, já o apóiam e utilizam em diferentes graus, mas com total compreensão de suas vantagens.</p>
<p>Fora do ambiente técnico, a Wikipédia é provavelmente o maior expoente desse novo modelo de criação. Com qualidade comparável à da venerável <a href="http://www.britannica.com">Enciclopédia Britannica</a>, a Wikipédia é capaz de crescer bem mais rápido que qualquer publicação em papel, e suas correções são aplicadas com rapidez inigualável.</p>
<p>Então, após conquistar as áreas de desenvolvimento de programas e publicação de conhecimento, que outros usos podemos propor para o desenvolvimento colaborativo?</p>
<h2>Para o bem de todos</h2>
<p>Antes de começar a fazer sugestões, vejamos a real motivação dos programadores e wikipedistas em compartilhar suas criações. Não se trata de filantropia ou preocupação social (ao menos na maioria dos casos): trata-se de ter um produto final com qualidade e com o conteúdo que seus autores, usuários e leitores esperam.</p>
<p>Ao contribuir com algumas linhas de código para um programa, ou com algumas informações num verbete da Wikipédia, os autores esperam que outros também façam o mesmo. Assim, quando um wikipedista especialista em economia necessitar, por exemplo, de informações a respeito da história do Japão, poderá conferir as contribuições feitas por alguém que talvez venha a pesquisar a respeito do mercado de ações. Da mesma forma, alguém que escreve e compartilha um programa para exibir fotos digitais tem a possibilidade de usar um navegador Web desenvolvido de forma colaborativa, como o <a href="http://br.mozdev.org/">Firefox</a>.</p>
<p>É verdade que qualquer pessoa pode usar o Firefox e procurar informações na Wikipédia, mesmo que jamais tenha contribuído com esses projetos. Porém, não imagine que isso enfraquece o desenvolvimento colaborativo. Muito pelo contrário. Como muito bem observa Cezar Taurion, executivo da IBM que se dedica ao estudo teórico do desenvolvimento colaborativo de software, o produto dessas colaborações sofre o <a href="http://en.wikipedia.org/wiki/Network_effect">efeito de rede</a>[link em inglês], sob o qual o valor de um produto cresce exponencialmente com o número de usuários desse mesmo produto. Simplificando, poderíamos inferir que programas com grande número de usuários atraem mais desenvolvedores.</p>
<h2>Um caso nacional</h2>
<p>Agora talvez possamos responder a pergunta feita acima: que outros usos podemos propor para o desenvolvimento colaborativo?</p>
<p>Para não tornar este texto longo demais, sugiro logo minha resposta: <b>o próprio desenvolvimento da nação</b>.</p>
<p>Novamente lanço mão do exemplo dos softwares. Qual a melhor forma de implementar certa funcionalidade a um programa? Em programação sempre há mais de uma forma de se realizar uma mesma tarefa. Um programador pode escolher uma forma, que outro desenvolvedor logo percebe ser menos eficiente que uma segunda maneira, e faz as alterações necessárias (quando se trata de um programa cujo código-fonte é aberto). Um terceiro programador, com mais experiência, enxerga todo o problema por um ângulo distinto, e propõe uma forma radicalmente diferente – e ainda mais eficiente – para solucionar a questão.</p>
<p>Qual a solução para a fome no país? Com certeza há inúmeras formas de alimentar os famintos e solucionar esse problema, não somente no Brasil, como no mundo todo. E como podemos encontrar a melhor? Ou uma das melhores?</p>
<p>Minha primeira sugestão seria um wiki. Imagine o poder de uma população que sugere soluções e melhorias para seus próprios problemas através de um wiki. Independente de quem chegue ao poder, ou de seu partido, o wiki consolidaria todas as melhores formas para solucionarmos os problemas da nação. Nossos legisladores teriam informação de qualidade, garantida por nós mesmos, sobre os verdadeiros problemas que nos afligem, e quais as melhores maneiras para solucioná-los. Aqueles políticos que de fato resolvessem tais questões inevitavelmente figurariam no wiki, recebendo assim os méritos típicos do modelo colaborativo, e potencialmente garantindo-lhes votos nas próximas eleições.</p>
<p>Com as atenções de todo o eleitorado voltadas para o wiki, ele ganharia assim o recurso de palco de propaganda política <b>verdadeira</b>, ao mesmo tempo em que aumentaria o poder e a adoção das sugestões de melhorias nele contidas. Como se pode ver, o efeito de rede novamente entra em ação, e o valor das sugestões da população aumenta de acordo com o próprio número de propostas e políticos que as adotem.</p>
<p>A discussão política, econômica e social é importante, mesmo que não seja interessante. Mais um motivo para torná-la o mais aberta possível.</p>
<p>Outras sugestões são bem vindas. ;)</p>Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-4586939302561197282.post-1643443659434169672007-10-02T15:55:00.000-04:002007-10-02T16:25:19.930-04:00Lado direito<p>O que pode ser tão difícil assim em ficar do lado direito? Não, sério, o que pode ser tão difícil assim?</p>
<p>Talvez eu seja um obsessivo total, e esse seja o motivo pelo qual eu <b>sempre</b> vou pro lado direito ao entrar numa escada rolante, dirigir na estrada ou até caminhar a pé pela calçada.</p>
<p>Mas eu acho que é falta de educação mesmo. E isso é um problema.</p>
<p>Eu costumo dizer que no Brasil ninguém ensina o valor dos <i>processos</i>. Pra mim, parece que ninguém sabe o que é um projeto. E eu acho que é esse um dos motivos do extremo imediatismo da nossa população.</p>
<p>Um processo é uma <i>coisa</i> (uau!, que linguajar técnico! :) ) que está em modificação, ou que causa alterações em objetos ou sistemas.</p>
<h3>O processo "lado direito"</h3>
<p>Como tenho usado muito o metrô, esse é o exemplo mais claro (e perturbante) na minha cabeça, e por isso vou usá-lo como exemplo aqui.</p>
<p>Podemos simplificar uma escada rolante como um meio onde há pessoas <b>com</b> pressa e pessoas <b>sem</b> pressa. Como pessoas com pressa e sem pressa podem compartilhar um mesmo meio, sem que as com pressa se atrasem e sem que as sem pressa se sintam pressionadas a ir mais rápido?</p>
<p>Separando o meio em dois. Se os com pressa e os sem pressa se misturarem, ganharão os sem pressa, porque, por definição, eles não vão se apressar por causa dos outros, enquanto os apressados acabam forçosamente retidos pelos sem pressa. Ou seja, um dos dois grupos é prejudicado.</p>
<p>Se os sem pressa combinarem de ficar do lado direito, paradinhos, conversando o quanto quiserem, enquanto a escada faz o esforço por eles, os apressados poderão passar livremente pelo lado esquero, sem atrapalhar ninguém nem ser prejudicados.</p>
<p>A falta de compreensão de processo, nesse caso, é dos sem pressa, porque se recusam a se organizar para dividir harmoniosamente o espaço com os apressados. Com isso, eles geram raiva e insatisfação, piorando a qualidade de vida do próximo. Com várias pessoas chateadas, certamente a qualidade de vida média da população é reduzida, o que significa que <b>você</b>, ao interagir com <i>qualquer pessoa</i>, sentirá esses sintomas.</p>
<p>No trânsito temos vários outros exemplos de incompreensão de processos. Motoristas dirigindo pelo acostamento, na estrada congestionada, simplesmente não entendem que, ao furarem fila, vão piorar ainda mais a situação como um todo: se o trânsito já não anda com um carro por faixa, <i>n</i>+1 carros pra <i>n</i> faixas certamente será muito pior.</p>
<h3>Pedido</h3>
<p>Então, fica aqui uma sugestão: antes de agir, pense num prazo mais longo que o próximo segundo. Você pode estar piorando a sua própria qualidade de vida.</p>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4586939302561197282.post-89844315660630444562007-09-20T20:29:00.000-04:002007-10-02T16:43:55.818-04:00emerge? pmerge!<p>Que a árvore de pacotes do Portage é excelente, eu não tenho a menor dúvida. Mas uma coisa é certa: sempre fico com inveja quando vejo alguém pegar um Debian/Ubuntu ultra-desatualizado e dar um <code>apt-get update && apt-get dist-upgrade</code> <b>muito, mas muito</b> mais rápido do que seus equivalentes gentooístas, <code>emerge sync && emerge -uD world</code>. Na verdade, o comando inteiro com <code>apt-get</code> ainda roda muito mais rápido que um simples <code>emerge -uvp world</code>.</p>
<p>É verdade, esses comandos não são usados todo dia, então não deveriam causar esse tipo de reação. Mas acho que isso é lento demais.</p>
<p>Felizmente <a href="http://www.pkgcore.org/trac/pkgcore">não estou sozinho</a>. O pkgcore está disponível na árvore do Portage, e é uma das duas alternativas ao emerge mais "famosas" (a outra é o <a href="http://paludis.pioto.org/">Paludis</a>).</p>
<p>Quem se interessar pode seguir a reconhecidamente excelente <a href="http://gentoo-wiki.com/HOWTO_pkgcore_quickstart_guide">documentação do Gentoo</a> para começar a usar o Pkgcore.</p>
<p>E se alguém precisar de mais um empurrãozinho, aí vão alguns tempos de execução no meu laptop:</p>
<pre class="term">feanor ~ # time ( emerge -up world >/dev/null )
real 0m4.110s
user 0m3.792s
sys 0m0.191s
feanor ~ # time ( emerge -up world >/dev/null )
real 0m3.847s
user 0m3.607s
sys 0m0.202s
feanor ~ # time ( pmerge -up world >/dev/null )
real 0m4.681s
user 0m0.568s
sys 0m0.106s
feanor ~ # time ( pmerge -up world >/dev/null )
real 0m0.216s
user 0m0.162s
sys 0m0.054s
</pre>
<p>O que se percebe aí é que a primeira rodada do emerge ou pmerge é lenta. Igualmente lenta, <b>infelizmente</b>. Mas a partir da segunda (desde que não se tenha rodado um <code>emerge sync</code> no meio do caminho), o pmerge é muito mais rápido.</p>
<p>É, esse exemplo não foi muito bom. Mas o fato é que o pkgcore dá um certo banho no emerge, e a sintaxe dos comandos é quase sempre igual.</p>
<p>Eu recomendo!</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-86447056793791111722007-09-20T20:12:00.000-04:002007-09-20T20:29:17.663-04:00iwlwifi facinho, facinho<p>Você tem uma placa de rede sem fio Intel ipw3945? Então provavelmente você sabe que o driver <i>ipw3945</i>, de autoria da própria Intel, tem alguns problemas conhecidos, como freqüentes falhas para autenticar com WPA-PSK e WPA2-PSK.</p>
<p>Bom, eu sofri bastante com essas falhas, porque queria realmente usar minha rede sem fio no <a href="http://mmulpp.blogspot.com/2007/06/linux-num-clevo-m660.html">meu notebook Clevo</a>, e sempre que tinha alguma parede entre a máquina e o roteador ele <b>não</b> autenticava nem por decreto.</p>
<p>Boa notícia! A falha era no microcódigo, ou no tal do <i>daemon</i> regulatório obrigatório (é, é um driver em 3 partes, maior loucura...). E a Intel está desenvolvendo um <a href="http://intellinuxwireless.org/">novo driver</a>, chamado <i>iwlwifi</i>, e naturalmente já disponível no <a href="http://www.gentoo.org">Gentoo</a>.</p>
<p>Instalei o driver novo (deu um certo trabalho) e consegui fazer funcionar. Maravilha.</p>
<p>Mais uma boa notícia pros preguiçosos! O kernel sempre experimental do Andrew Morton (<a href="http://kernel.org/patchtypes/mm.html">árvore <code>-mm</code></a>) já traz o driver.</p>
<p>Então, pra quem tiver uma boa distribuição, é só <code>emerge mm-sources</code>.</p>
<p>Bom emerge. ;)</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-73997133727409811072007-09-20T20:04:00.000-04:002008-08-27T19:23:38.743-04:00Virt-manager tá no Portage<p>Luciano, essa é pra você! :)</p>
<p>Vivo reclamando do Gentoo, né? Pois lembrei de um importante motivo pra amar essa bela distribuição (ou <a href="http://mmulpp.blogspot.com/2007/09/sabayongentoo-ubuntudebian.html">meta-distribuição</a>): tem pacote <b>pra caramba</b>! Olha só:</p>
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Lsu_okv-ML7rCuibZfMeJ_D1PqzxwH2R2dZ1k9_Y2iSkJQFw1eW_dEMM8UCdoVolpjFJj7wiC9_z6oq7PFIvzfHb9FEj4W6HPm1TNqmHdr1-LJXdVG6l6zToxL-Xe9zXqkCF-1PYwFw/s1600-h/virt-manager.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Lsu_okv-ML7rCuibZfMeJ_D1PqzxwH2R2dZ1k9_Y2iSkJQFw1eW_dEMM8UCdoVolpjFJj7wiC9_z6oq7PFIvzfHb9FEj4W6HPm1TNqmHdr1-LJXdVG6l6zToxL-Xe9zXqkCF-1PYwFw/s320/virt-manager.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5112442751116654530" /></a>
<p>Ah, slackware...</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-76656708764036944492007-09-17T18:14:00.000-04:002007-09-17T18:36:17.855-04:00(Sabayon/Gentoo = Ubuntu/Debian)?<p>O título deste post é uma pergunta. E é das simples: O <a href="http://www.sabayon.org/">Sabayon</a> está para o <a href="http://www.gentoo.org/">Gentoo</a> assim como o <a href="http://www.ubuntu.com/">Ubuntu</a> está para o <a href="http://www.br.debian.org/">Debian</a>?</p>
<p>Explico. O Debian já foi chamado de meta-distribuição. Inegavelmente, o Debian tem um escopo bem mais amplo que o Ubuntu. Tá bom, existe o <a href="http://www.ubuntu.com/server/">Ubuntu Server</a>. Ok, mas o Debian ainda é mais flexível. Ou, se preferir, mais cru. Tem gente que gosta de distro crua, e tem gente que prefere as já prontas.</p>
<p>Voltando à pergunta, a relação entre Ubuntu e Debian, portanto, é de distribuição-base (Debian) e distribuição baseada (e pronta) (Ubuntu). No <i>compiloso</i> mundo do Gentoo, até agora a única distro a fazer barulho quanto a sua descendência <b>e ter sucesso</b> é o Sabayon.</p>
<p>O Sabayon tem tudo pra estourar como uma distro derivada do Gentoo, retrocompatível, e plenamente voltada ao usuário (final) de desktop. Então, acho que os desenvolvedores de ambas deviam conversar mais pragmaticamente sobre o assunto, de forma a beneficiá-las mais do que tem ocorrido no estado atual das coisas.</p>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-54882812136213555322007-07-09T08:12:00.000-04:002007-07-08T23:51:57.779-04:00Meu mix ideal de sistemas de arquivos<h2>Fatos sobre <a href=http://pt.wikipedia.org/wiki/Sistema_de_arquivos>sistemas de arquivos</a>:</h2>
<ul>
<li>XFS é rápido e ultra-seguro</li>
<li>XFS é especialmente rápido com arquivos grandes (1 MB ou maiores), e um tanto lento com arquivos pequenos</li>
<li>A velocidade do ReiserFS é imbatível ao manipular diretórios lotados de arquivos pequenos</li>
<li>Já tive sérios problemas de perda de dados <b>espontânea</b> com ReiserFS, e não uso mais esse sistema de arquivos para guardar dados importantes</li>
<li>Todo sistema de arquivos sofre fragmentação, em maior ou menor escala</li>
</ul>
<h2>Problema</h2>
<p>Os diretórios com grande "tráfego" (isto é, apagamento e criação) de arquivos podem prejudicar muito o desempenho do sistema de arquivos no qual residem, promovendo a fragmentação. São exemplos desse tráfego, no <a href=http://www.gentoobr.org>Gentoo</a>: <code>/usr/src/</code> (one fica o código-fonte do kernel), <code>/var/cache/</code> (onde fica o cache de ferramentas como CUPS, man, samba etc.), <code>/usr/portage/</code> (onde reside a árvore do Portage) e <code>/var/tmp/portage</code> (onde o Gentoo faz todas as compilações dos pacotes de programas).</p>
<h2>Soluções</h2>
<p>Dispositivos de <i>loop</i> são uma forma de você criar uma partição de dados em um único arquivo. Os diretórios <code>/var/cache/</code>, <code>/usr/portage/</code> e <code>/usr/src/</code> precisam preservar seu conteúdo depois de reinicializações. Mas o <code>/var/tmp/portage</code> não.</p>
<h3>/var/tmp/portage</h3>
<p>O conteúdo desse diretório tem muito <i>I/O</i> (entrada e saída, ou seja, gravações e leituras), mas assim que a instalação de um pacote termina, todos os arquivos relativos a este são apagados. Então, façamos como sugere o <a href=http://gentoo-wiki.com/TIP_Speeding_up_portage_with_tmpfs>Gentoo wiki</a> e usemos o sistema de arquivos <i>tmpfs</i> (que usa apenas a memória RAM para guardar dados) para abrigar o <code>/var/tmp/portage/</code>, adicionando a seguinte linha ao arquivo <code>/etc/fstab</code>:</p>
<pre class="term">
none /var/tmp/portage tmpfs auto,size=2G.nr_inodes=1M 0 0
</pre>
<p class="lembrete">Mas atenção: dependendo da sua quantidade de memória, essa mudança específica pode acabar sendo prejudicial, pois pode aumentar muito o uso de swap. Confira o wiki do Gentoo para se informar melhor</p>
<h3>outros diretórios</h3>
<p>Quanto espaço ocupa o <code>/usr/portage/</code>?</p>
<pre class="term">
bash$ du -sh /usr/portage/
538M /usr/portage/
</pre>
<p>Vamos criar um arquivo um pouco maior (pra ter uma folguinha)</p>
<pre class="term">
bash$ sudo dd if=/dev/zero of=/usr/img.portage bs=1M count=600
</pre>
<p>Pronto. Criamos um arquivo de 600 MB pra abrigar um diretório que atualmente tem 538 MB. Deve ser suficiente por algum tempo. Agora, vamos formatar esse arquivo com um sistema de arquivos, como se fosse uma partição:</p>
<pre class="term">
bash$ sudo mkreiserfs -f /usr/img.portage
</pre>
<p>Agora vamos montar essa nova "partição" como <i>loop device</i> e copiar para ela tudo que está no diretório original:</p>
<pre class="term">
bash$ sudo mount -t reiserfs -o loop,notail,noatime /usr/img.portage /mnt/floppy
bash$ sudo rsync -av /usr/portage/ /mnt/floppy/
bash$ sudo umount /mnt/floppy/
</pre>
<p class="lembrete">Não se esqueça das barras no final dos nomes dos diretórios!</p>
<p>Já podemos fazer o mesmo com os outros diretórios.</p>
<pre class="term">
bash$ sudo du -sh /usr/src/
556M /usr/src/
bash$ sudo dd if=/dev/zero of=/usr/img.src bs=1M count=1000
bash$ sudo mkreiserfs -f /usr/img.src
bash$ sudo mount -t reiserfs -o loop,notail,noatime /usr/img.src /mnt/floppy/
bash$ sudo rsync -av /usr/src/ /mnt/floppy/
bash$ sudo umount /mnt/floppy/
bash$ sudo du -sh /var/cache/
106M /var/cache/
bash$ sudo dd if=/dev/zero of=/var/img.cache bs=1M count=100
bash$ sudo mkreiserfs -f /var/img.cache
bash$ sudo mount -t reiserfs -o loop,notail,noatime /var/img.cache /mnt/floppy/
bash$ sudo rsync -av /var/cache/ /mnt/floppy/
bash$ sudo umount /mnt/floppy/
</pre>
<p>Ao final, basta acrescentar essas informações ao arquivo <code>/etc/fstab</code> para que os arquivos de loop sejam montados automaticamente na inicialização</p>
<pre class="term">
/usr/img.portage /usr/portage reiserfs loop,auto,noatime 0 0
/usr/img.src /usr/src reiserfs loop,auto,noatime 0 0
/var/img.cache /var/cache reiserfs loop,auto,noatime 0 0
</pre>
<h2>Conclusão</h2>
<p>Depois disso, todas as tarefas que envolvem a manipulação desses diretórios ficaram significativamente mais rápidas (benchmarks são bem vindos). :)</p>
<p>Só pra exemplificar, o <code>eix-sync</code> passou a levar só 1 a 2 minutos.</p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-4586939302561197282.post-21051252982835895602007-07-08T20:44:00.000-04:002007-07-09T15:12:20.994-04:00Kernel novo<p>Finalmente o Linus Torvalds <a href=http://lkml.org/lkml/2007/7/8/195>anunciou</a> a <a href=http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2>versão 2.6.22</a> do kernel Linux. Viva!!!</p>
<p>O último a baixar é a mulher do sapo! =)</p>
<p>E isso provavelmente significa que teremos uma coluna <i>Pablo Hess</i> na <a href=http://www.linuxmagazine.com.br>Linux Magazine</a> 33 falando sobre o novo kernel. Como não deu pra publicar uma sobre o 2.6.21, que teve uma das <a href=http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.21>listas de alterações</a> mais longas de todos os tempos, acho que essa do 2.6.22 vai ser complexa de fazer, e talvez só saiam os itens do 2.6.21 relevantes para o 2.6.22.</p>
<h2>Atualizando</h2>
<p>O 2.6.22 é que tem a lista mais longa de todos os tempos. E a coluna já está escrita. =)</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4586939302561197282.post-40858494081250602542007-06-23T23:01:00.000-04:002007-06-28T16:07:00.864-04:00Linux num Clevo M660<p>Descrevo aqui como fiz a instalação e configuração do Gentoo Linux em um notebook <i>Clevo M660</i>.</p>
<h2>Por que Linux?</h2>
<p>Linux é, hoje em dia, meu sistema operacional preferido. E tem sido nos últimos nove anos. No meu trabalho, uso Linux 100% do tempo, há pelo menos três anos.</p>
<p>O Linux é seguro (nunca tive um vírus no Linux -- nem tampouco me preocupei com isso), veloz (a maioria dos programas rodam nele mais rápido do que no Windows) e flexível (é inacreditável a profundidade das mudanças que se pode fazer num sistema Linux).</p>
<h2>Por que um Clevo?</h2>
<p>A Clevo é uma das maiores fabricantes mundiais de laptops. No entanto, ninguém nunca ouviu falar nela porque ela é uma <a href=http://en.wikipedia.org/wiki/Original_Design_Manufacturer><i>ODM</i></a> (<i>Original Design Manufacturer</i>),</p>
<dl>
<dd>a company which manufactures a product which ultimately will be branded by another firm for sale</dd>
</dl>
<p>Além da <a href=http://www.msi.com.te>MSI</a>, não sei quais empresas remarcam esse mesmo modelo, nem quais os nomes que elas conferem a ele. Mas é uma ótima máquina:</p>
<table>
<th>Categoria</th>
<th>Item</th>
<tr>
<td>Processador</td>
<td>Intel Core 2 Duo T7200 2.0 GHz -- que bicho rápido!</td>
</tr>
<tr>
<td>Memória</td>
<td>1x1GB -- devidamente acrescido de 1x1GB, totalizando 2GB</td>
</tr>
<tr>
<td>Northbridge</td>
<td>Intel 945GM</td>
</tr>
<tr>
<td>Vídeo</td>
<td>Intel 945GM/GMS Express (rev 03)</td>
</tr>
<tr>
<td>Southbridge</td>
<td>Intel ICH-7M</td>
</tr>
<tr>
<td>Som</td>
<td>Intel HDA, também chamado de <i>Azalia</i></td>
</tr>
<tr>
<td>Rede</td>
<td>Realtek 8169 Gb-Ethernet -- tem funcionado tão bem quanto uma Intel</td>
</tr>
<tr>
<td>Rede sem fio</td>
<td>Intel ipw3945</td>
</tr>
<tr>
<td>HD</td>
<td>SATA TOSHIBA MK1034GSX 100 GB</td>
</tr>
<tr>
<td>LCD</td>
<td>15,4" <b>bastante</b> luminoso, reflexivo como os da HP</td>
</tr>
<tr>
<td>USB</td>
<td>Infelizmente, só 3 entradas</td>
</tr>
<tr>
<td>Firewire / IEEE 1394</td>
<td>1 entrada i.Link®</td>
</tr>
<tr>
<td>Expansão</td>
<td>1 <i><a href="http://en.wikipedia.org/wiki/Expresscard">ExpressCard 54</a></i></td>
</tr>
<tr>
<td>Mídia ótica</td>
<td>DVD+/-RW mono-layer</td>
</tr>
</table>
<h2>O que funcionou de primeira</h2>
<p>Processador, HD (SATA AHCI), DVD+/-RW, rede com fio, som.</p>
<p>Ah sim! E por incrível que pareça, as teclas especiais de <b>brilho</b>, <b>(des)ligar o wi-fi</b> e <b>suspend-to-RAM</b> <u>também funcionaram <i>out of the box</i></u>!</p>
<h2>O que não funciona de jeito nenhum</h2>
<p>Web-cam :(</p>
<h2>Tintim por tintim: os drivers e pacotes necessários</h2>
<h3>LCD</h3>
<p>
É necessário instalar o pacote <i>915resolution</i> (mesmo que o chip gráfico não seja um Intel 915, e sim Intel 945). Isso é porque os chips gráficos da Intel costumam vir com freqüências esquisitas que o <i>Xorg</i> não consegue detectar. O 915resolution corrige isso, alterando a <i>VBIOS</i> a cada boot com a resolução que você passar pra ele.
</p>
<h4>Modo de uso:</h4>
<p>
O comando <code>915resolution -l</code> lista os modos gráficos definidos na VBIOS, a BIOS do chip de vídeo. Note que não há nenhuma linha com o modo suportado pelo LCD:
</p>
<pre class="term">
# 915resolution -l
Intel 800/900 Series VBIOS Hack : version 0.5.3
Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36
Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
...
</pre>
<p>
O arquivo de configuração do pacote (no <a href="http://www.gentoobr.org">Gentoo</a>, <code>/etc/conf.d/915resolution</code>) é bem comentado. Basta acrescentar nele uma linha como:
</p>
<pre class="term">
replace=( "3a 1280 800 32" )
</pre>
<p>
Feito isso, o primeiro comando a seguir carrega o modo na VBIOS, e o segundo lista novamente os modos, agora já com o novo adicionado.
</p>
<pre class="term">
# 915resolution -f /etc/conf.d/915resolution
# 915resolution -l
Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1280x800, 32 bits/pixel
...
</pre>
<p>
Obviamente tudo já vem pronto pra esse comando ser executado sozinho a cada boot. Em outras palavras, já vem um serviço para ler o arquivo e executar o <code>915resolution</code> durante o boot.
</p>
<p>
No Gentoo, insira esse serviço no <i>runlevel</i> <code>default</code> com o comando:
</p>
<pre class="term">
# rc-update add 915resolution default
</pre>
<h3>Som</h3>
<p>O Intel HDA (Azalia) que vem no laptop necessita do módulo <code>snd-hda-intel</code>. Porém, até o kernel 2.6.20, se não me engano, o driver incluído no kernel não conseguia funcionar direito.</p>
<p>Para solucionar, é necessário usar os pacotes <code>alsa-driver1.0.14-rc3</code> ou mais recente. No meu caso, isso exigiu acrescentar a entrada <code>=media-sound/alsa-driver-1.0.14-rc3 ~x86</code> ao arquivo <code>/etc/portage/package.keywords</code>, além de seguir o <a href=http://www.gentoo.org/doc/en/alsa-guide.xml>Gentoo Linux ALSA Guide</a>.</p>
<h3>Teclas de atalho</h3>
<p>Essa parte é realmente incrível. Meu Toshiba anterior exigia a instalação do pacote <code>toshiba-utils</code>, além do carregamento do módulo <code>toshiba-acpi</code>. Esse Clevo aparentemente tem as teclas de função ([<code>Fn</code>]+[<code>F<i>x</i></code>]) <i>hardwired</i>, ou seja, [<code>Fn</code>]+[<code>F9</code>] aumenta o brilho em qualquer ponto do carregamento do Linux. O mesmo vale para a tecla de diminuir o brillho, e também pras teclas de ligar e desligar o WiFi, ligar e desligar a câmera embutida e ativar o <i>suspend-to-ram</i> (caso esse recurso esteja ativado no kernel).</p>
<p>As teclas de ajuste do volume precisam da atuação do Gnome, mas o Gnome detecta sozinho a existência delas, e as configura automaticamente. Eu nem precisei tocar nessa configuração!</p>
<p>As teclas de atalho metálicas que ficam "fora" do teclado normal também precisam de configuração manual. As 3 teclas do lado esquerdo (originalmente pra chamar editor de texto, navegador web e leitor de e-mais) geram keycodes específicos, e aí basta usar o <code>setkeycodes</code> mapeá-los para que o Linux consiga usá-los efetivamente:</p>
<pre class="term">
setkeycodes e001 201 && \
setkeycodes e002 202 && \
setkeycodes e003 203
</pre>
<p>Eu coloco esses comandos no arquivo <code>/etc/conf.d/local.start</code>, de forma que o sistema mapeia as teclas sozinho a cada boot.</p>
<p>As teclinhas da direita não são difíceis de configurar, e eu consegui facilmente associar as duas lupas (zoom-in e zoom-out) ao efeito de zoom do Compiz. Moleza.</p>
<h3>WiFi</h3>
<p>Pra mim, a rede sem fio é sempre uma coisa chata de configurar, mesmo que tenha total suporte por parte do Linux. Era chato com o driver <i>madwifi</i> que eu usava no Toshiba, e continua chata (embora menos chata) com o <i>ip23945</i> desse Clevo.</p>
<p>Pra usar a rede sem fio com o chip ipw3945, é necessário instalar os seguintes pacotes:</p>
<ul>
<li><i>ipw3945</i>: driver da placa;</li>
<li><i>ipw3945-ucode</i>: microcódigo necessário para que a placa funcione no Linux e</li>
<li><i>ipw3945d</i>: <i>daemon</i> regulador da placa (é, eu também acho isso meio exageradamente complexo).</li>
</ul>
<p>Mesmo que você não use a criptografia WPA, infinitamente mais segura que WEP, eu recomendo o pacote <i>wpa_supplicant</i>. Se for compilado com <code>USE=qt4</code> ou <code>USE=qt3</code>, ele instala uma interface gráfica que torna <b>facílima</b> a busca e configuração de redes sem fio nas redondezas.</p>
<p class="importante">Mas cuidado para não violar a privacidade de ninguém!</p>
<h2>Conclusão</h2>
<p>O Clevo M660 é muito legal. O LCD especialmente brilhante e com ótimo contraste contribui muito para o sucesso que ele faz onde quer que eu o leve. Falando em leve, ele pesa "só" 2,6 kg, o que é um peso padrão atualmente, com essa excelente geração de notebooks levíssimos movidos a Centrino. :)</p>
<p>A ventoinha dele poderia ser menos barulhenta. Meu Toshiba anterior, embora tivesse um esquentadíssimo P4-M 2.8GHz, raramente ligava a ventoinha, e quando ligava não fazia quase nenhum barulho. Já o Clevo agüenta sem ventoinha uns 10 minutos, mas depois liga e raramente desliga.</p>
<p>Os atalhos <i>hard-wired</i> são definitivamente um plus. Plusão, eu diria!</p>
<p>O notebook, com um Core 2 Duo 2.0GHz e 100GB de HD, saiu um pouco mais barato do que cobravam em supermercados, <a href=http://www.fnac.com.br>Fnac</a> e <a href=http://www.fastshop.com.br>Fast Shop</a> por notebooks bem inferiores, com Core Duo (nem Core 2 era) 1.6GHz e mais pesados. Ainda estou certo de que foi uma ótima opção.</p>Unknownnoreply@blogger.com12