Stoa :: Lucas De Marchi :: Blog

Maio 21, 2009

default user icon
Postado por Lucas De Marchi

Nesse post eu mostro como fazer pra ligar, desligar e mudar a forma de acesso ao cache do seu computador (usando Linux).

Percebi que vários não atualizaram os bookmarks/RSSs para o meu novo blog, então nada melhor do que colocar um aviso aqui. Segue o link: Playing with your cache

 

Palavras-chave: Cache, Linux, multi-core, SMP

Postado por Lucas De Marchi | 0 comentário

Maio 07, 2009

default user icon
Postado por Lucas De Marchi

Dados os últimos problemas ocorridos com o Stoa, decidi que estou abandonando esse meu blog. Ele não será mais atualizado e em seu lugar eu comecei um novo: Politreco.

Não estou saindo do Stoa, pois gosto muito dele e dos outros serviços que ele oferece. Não gostei da repercussão que houve em relação à brincadeira do 1.o de abril e do consecutivo bloqueio de todas as contas. Agradeço ao pessoal que tem mantido essa plataforma (que eu "conheça", Tom e Ewout) e gostaria de enfatizar que não é com eles que fiquei chateado.

---

As I had some problems with the place I'm hosting this blog, I'm moving to a new one: Politreco.

Postado por Lucas De Marchi | 0 comentário

Março 12, 2009

default user icon
Postado por Lucas De Marchi

Abaixo segue um texto escrito por Eça de Queirós e que li no blog do Juca Kfouri. Eu não concordo, pois creio que a partir do momento que você está em um outro país você tem que se esforçar pra falar a sua língua. Não acho falta de nacionalismo, patriotismo ou qualquer outra coisa parecida; é um simples esforço humano de socialização. Além disso, creio que falar bem a língua estrangeira é a melhor forma de não ser alvo de xenofobismo, cada vez mais presente em nossa sociedade. E vocês, leitores, o que acham?

 

Um homem só deve falar, com impecável segurança e pureza, a língua da sua terra: - todas as outras as deve falar mal, orgulhosamente mal, com aquele acento chato e falso que denuncia logo o estrangeiro.

Na língua verdadeiramente reside a nacionalidade; - e quem for possuindo com crescente perfeição os idiomas da Europa, vai gradualmente sofrendo uma desnacionalização.

Não há já para ele o especial e exclusivo encanto da fala materna, com as suas influências afectivas, que o envolvem, o isolam das outras raças; e o cosmopolitismo do Verbo irremediavelmente lhe dá o cosmopolitismo do carácter.

Por isso o poliglota nunca é patriota.

Com cada idioma alheio que assimila, introduzem-se-lhe no organismo moral modos alheios de pensar, modos alheios de sentir.

O seu patriotismo desaparece, diluído em estrangeirismo.

Rue de Rivoli, Calle d’Alcalá, Regent Street, Willelm Strasse - que lhe importa?

Todas são ruas, de pedra ou de macadame.

Em todas a fala ambiente lhe oferece um elemento natural e congénere, onde o seu espírito se move livremente, espontaneamente, sem hesitações, sem atritos.

E como pelo Verbo, que é o instrumento essencial da fusão humana, se pode fundir com todas - em todas sente e aceita uma Pátria.

Por outro lado, o esforço contínuo de um homem para se exprimir, com genuína e exacta propriedade de construção e de acento, em idiomas estranhos - isto é, o esforço para se confundir com gentes estranhas no que elas têm de essencialmente característico, o Verbo - apaga nele toda a individualidade nativa.

Ao fim de anos esse habilidoso, que chegou a falar absolutamente bem outras línguas além da sua, perdeu toda a originalidade de espírito - porque as suas ideias, forçosamente, devem ter a natureza, incaracterística e neutra, que lhes permita serem indiferentemente adaptadas às línguas mais opostas em carácter e génio.

Devem, de facto, ser como aqueles «corpos de pobre» de que tão tristemente fala o povo - «que cabem bem na roupa de toda a gente».

Além disso, o propósito de pronunciar com perfeição línguas estrangeiras, constitui uma lamentável sabujice para com o estrangeiro.

Há ai, diante dele, como o desejo servil de não sermos nós mesmos, de nos fundirmos nele, no que ele tem de mais seu, de mais próprio, o Vocábulo.

Ora isto é uma abdicação de dignidade nacional.

Não, minha senhora!

Falemos nobremente mal, patrioticamente mal, as línguas dos outros!

Mesmo porque aos estrangeiros o poliglota só inspira desconfiança, como ser que não tem raízes, nem lar estável - ser que rola através das nacionalidades alheias, sucessivamente se disfarça nelas, e tenta uma instalação de vida em todas, porque não é tolerado por nenhuma.

Com efeito, se a minha amiga percorrer a Gazeta dos Tribunais, verá que o perfeito poliglotismo é um instrumento de alta escroquerie.

Palavras-chave: Línguas, Nacionalismo, Patriotismo, Xenofobismo

Postado por Lucas De Marchi | 1 usuário votou. 1 voto | 3 comentários

Março 03, 2009

default user icon
Postado por Lucas De Marchi

It was some months ago that I decided to start this project and now I'm trying to "finish" it, i.e. give it a 3D interface in order to a human be able to play or to visualize the positions the algorithms have played. While the interface is still far from finished, I thought it'd be a good idea to share some improvements I made last week and also to get some suggestions (feel free to comment this post).

First of all, a short description: "trissa" (in italian) is the tic-tac-toe game. Now imagine a tic-tac-toe game in a NxN board instead of the traditional 3x3. Done? Give it the third dimension adding N additional planes. You must have imagined this, which is the game I'm developing.

As I told, it was some time ago that I started it and since the very beginning I put it under GPLv2. In my github repository you find all the code plus some 2 wiki pages explaining the game and how to insert your killer algorithm to play it.

The following screenshots were taken today with the source code in my local repository which will be pushed up to github as soon as I fix some details and improve somethings. I warned you!! You will not be able to get these screenshots with the available code. Not yet.

Last things I'd like to say before the screenshots: 1. I'm using Ogre3d as the render engine; 2. By now, it works only on Linux; after I get something usable I plan to port it to Windows / MacOS; 3. I hope you enjoy it.

        

 PS.: I'm writing in English so also my friends from Italy can read it.

Palavras-chave: 3D, Games, Linux, Ogre3D, tic-tac-toe

Postado por Lucas De Marchi | 1 usuário votou. 1 voto | 4 comentários

Novembro 20, 2008

default user icon
Postado por Lucas De Marchi

Esse é o último post da série de três posts que havia prometido sobre o tema "Consertando a web" ou, se preferir, "visualizando os sites do jeito que você quer". Não deixe de ler os dois primeiros: 1. Firebug e 2. Firebug + Stylish.

Como diz o título, hoje veremos como usar o Greasemonkey. Seguindo a linha learning by examples, mostrarei um caso de uso no webmail da Poli (se não me engano eles usam o Microsoft Outlook Web Access v.muito.antiga.pra.caramba).

 

Sobre

O Greasemonkey está para Javascript assim como o Stylish está para o CSS: essa é a melhor definição que posso dar pra quem já leu os posts anteriores. É possível definir um determinado script pra ser executado toda vez que você visita um determinado site. Com isso você ganha todo o poder que o Javascript pode te dar: além de poder mudar a aparência do site (como já era possível usando o Stylish), você pode acrescentar funções a serem chamadas em resposta a uma ação sua, acrescentar botões, elementos, tratamento de dados etc.

 

Motivação

Não tenho muito o costume de abrir o webmail da Poli, já que eu configuro o meu Gmail como cliente pop3 dele (assim posso ler meus emails da Poli junto com os do Gmail). O problema é o seguinte: o espaço de armazenamento disponível é de apenas (pasmen) 15 MB e eu não quero configurar o Gmail para apagar o email assim que o receber. Ou seja: a cada 2 meses recebo um email que minha caixa de emails está cheia e tenho que ir lá apagá-los.

Voltaremos a esse assunto na hora apropriada. Por ora, Greasemonkey!

 

Mão na massa

Você pode fazer o download dele no site de addons. Ou, se você está usando o Firefox 3.x simplesmente vá em Ferramentas > Addons, procure pelo addon Greasemonkey e pressione instalar - no melhor estilo linux de instalar de um repositório ;-). Depois de reiniciar o firefox, você já vai poder ver no canto inferior direito o símbolo dele.

Assim como com o Stylish, existe um site com vários scripts prontos para o Greasemonkey: userscripts. Recomendo dar uma olhada lá antes de sair escrevendo algum JavaScript.

Não é a intenção desse post explicar como programar em Javascript. Deixo isso para os diversos tutoriais que existem na web. Eu nunca programei em Javascript e fui mais pela intuição para fazer o que precisava; creio que para coisas simples, como algumas mudanças em algumas páginas web, não seja necessário um grande conhecimento nessa linguagem, além de que o "google é sempre seu amigo". Outra grande fonte de informação são os scripts presentes no site indicado acima; pegue um deles, dê uma olhada na implementação e faça o seu baseado em um deles.

O cabeçalho básico de qualquer Javascript a ser usado pelo Greasemonkey é o seguinte:

// ==UserScript== // @name               NomeDoSeuScript // @namespace          Site_de_referência // @description         Breve_descrição_do_que_ele_faz // @include            Site_para_o_qual_será_adicionado_o_seu_script // @include            Outro_site_para_o_qual_será_adicionado_o_seu_script // ==/UserScript==

Você pode começar com esse cabeçalho no seu editor de texto favorito ou simplemente clicar com o botão direito no ícone do Greasemonkey, e selecionar a opção "New user script". Você verá a tela abaixo contendo os mesmos campos do exemplo acima. Basta preenchê-los e clicar em ok. Em seguida ele vai abrir o editor de textos para que você edite o script.

 

Como você pode ver na imagem acima, estamos começando o nosso script pra melhorar o webmail da poli. Veja que no campo include acrescentei o endereço do webmail da poli e também file:///*. Quando estamos testando os scripts, acho mais fácil salvar um html localmente com os elementos que queremos modificar/acrescentar do que ficar dando refresh no webmail. Com essa última opção, o Greasemonkey vai acrescentar seu script em qualquer página carregada do seu HD.

Uma coisa meio estúpida no webmail da Poli é que não tem como você selecionar todas as mensagens. Como disse acima, de tempos em tempos tenho que entrar lá com o simples motivo de apagar todas as mensagens e não tenho paciência de ficar selecionando mensagem por mensagem. Poderia resolver isso com um cliente pop3 em python bem fácil de fazer (que será assunto de um próximo post), mas quando o tal email dizendo "sua caixa de emails está cheia" chegou, era um sábado de manhã e eu estava afim de me divertir um pouco com o Greasemonkey.

A idéia é substituir aquela imagem de checkbox (que não tem utilidade nenhuma)  por uma checkbox de verdade. Assim, quando o usuário clicar na checkbox a seleção das mensagens será invertida: foi uma maneira simples e prática que encontrei de poder deletar todas as mensagens ao passo que posso salvar algumas que achar importantes. Abaixo a imagem com a pseudo-checkbox.

 

Vamos fazer isso em duas partes. A primeira é: com a ajuda do Firebug descobrir o nome do arquivo daquela imagem e usando Javascript substituir por uma checkbox. A segunda parte é fazer com que ao clicar na checkbox a seleção das mensagens seja invertida. A imagem abaixo mostra o uso do Firebug:

 

Substituindo a pseudo-checkbox por uma checkbox de verdade

O código abaixo implementa a primeira parte.

var img = document.evaluate('//img[@src=\'/exchweb/img/view-mark.gif\']', document, null,                                 XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue; GM_log('Numero de elementos = ' + (img==null?'0':'1')); if(img){     var chk = document.createElement('input');     chk.type='checkbox';     img.parentNode.replaceChild(chk,img); }

Algumas coisas importantes de se notar:

  1. GM_log é a função para logar o que você quiser. É muito útil pra debug de Javascript. Você pode ter acesso a essas saídas em "Ferramentas > Console de Erro" no Firefox;
  2. A chamada document.evaluate é que faz o trabalho pesado de encontrar a imagem que estamos procurando. Ela recebe como primeiro parâmetro uma query XPath. No exemplo acima estamos procurando todos os elementos img do HTML com um parâmetro src='/exchweb/img/view-mark.gif';
  3. O if(img) está ali porque como o webmail usa frames, está sendo carregada mais de uma página "em baixo" de https://www.poli.usp.br/mail/. Ou seja, tem a página correspondente ao frame da esquerda e outra correspondente ao da direita. Como no da esquerda não tem nenhuma imagem com esse argumento, img será null nesse caso. Foi por isso que eu coloquei aquela mensagem no log: você pode verificar que ele loga dois valores "Numero de elementos = ..." quando você carrega o webmail;
  4. A última linha pega o nó pai da figura e faz com que ela seja substituída pela checkbox que criamos.

 

Executando uma função toda vez que a checkbox é clicada

A segunda parte consiste em aganchar um listener do evento click na recém-criada checkbox e criar uma função para inverter a seleção atual. Novamente usando o Firebug, descobrimos que as checkboxes que (de)selecionam as mensagens têm Name='MsgID'. Logo, a função de inversão de seleção deve somente acessar essas checkboxes invertendo o valor atual da propriedade "checked". Segue abaixo a função:

A função para inverter a seleção

function invertSelection(e){     var checkboxes;     checkboxes = document.getElementsByName('MsgID');     for (var i=0; i< checkboxes.length; i++)         checkboxes[i].checked= !checkboxes[i].checked;     GM_log('User click');     e.stopPropagation(); }

Para aganchar o listener para que essa função seja chamada toda vez que a nossa "checkbox-invert-selection" for clicada, basta fazer como segue, antes de trocar a imagem pela checkbox:

chk.addEventListener('click',invertSelection,false)

 

Conclusão

O código completo você pode encontrar aqui (licenciado sob a GPL): betterpoliwebmail.user.js. Abaixo algumas fotos desse script em ação.

==>

==>

Para terminar deixo a dica do manual do greasemonkey: dive into greasemonkey.

Com esse post encerro a série de 3 posts prometida sobre esse assunto. Espero que tenham gostado. Abaixo uma frase de Linus Torvalds em uma palestra sobre o git para pensar: "Intelligence is the ability to avoid doing work, yet getting the work done".

Postado por Lucas De Marchi | 1 usuário votou. 1 voto | 3 comentários

Novembro 07, 2008

default user icon
Postado por Lucas De Marchi

Esse é o segundo post dos 3 que pretendo fazer sobre o tema "Fix the web". O primeiro falava da extensão Firebug do Firefox, a qual usaremos neste post. Portanto, não o deixe de ler também.

Depois que comecei a escrever esse post, resolvi procurar no Stoa e achei um post do Everton falando dessa mesma extensão há 1 ano. Como vi que já tinha alguma coisa sobre isso no stoa, mudei um pouco a abordagem de forma a ser complementar ao que ele escreveu.

Motivação

Um dos sites que visito com certa freqüência é o Biblia Online. Porém sempre achei um desperdício de espaço deixar duas barras brancas nas laterais e o texto espremido no meio (principalmente quando se usa duas traduções simultaneamente) como pode ser visto na figura abaixo - pelo o que eu me lembre, quando o usei as barras brancas eram maiores do que agora.

Mão na massa

 

Para consertarmos isso vamos primeiramente usar o Firebug. Com a opção inspect ligada é fácil achar, depois de alguns minutos navegando pelo HTML/CSS, as propriedades que devemos mudar: as tags DIV com id iguais a "body" e "content" têm propriedades width marcadas com um número fixo de pixels; como eu quero ocupar todo o espaço disponível, nada melhor do que mudar esses valores para "auto". Apenas mudando essas duas propriedades, veja como chegamos a um bom resultado abaixo.

As duas propriedades que mudamos:

#body {
width:auto !important;
}
#content {
width:auto !important;
}

Eu me contento com a visualização obtida acima, mas você poderia ganhar ainda mais aquele espaço em branco na esquerda. Novamente, mais 30 segundos no Firebug e descobrimos que o div da esquerda (com os capítulos) é flutuante; logo, basta tirar essa propriedade e o div content "cai" logo abaixo. De quebra, podemos lembrar da propriedade visibility do CSS e fazer aquela propaganda do google desaparecer sem precisar recorrer a outras extensões pra isso. É claro que nesse caso a propaganda não está atrapalhando nada e está, digamos, bem-comportada; mas só usei para fazer um exemplo. O resultado final vou mostrar após o utilizo do Stylish.

Usando o Stylish

Depois de toda essa introdução, vamos tornar as nossas alterações permanentes para esse site. Instale-o a partir do site de addons do firefox e note o ícone dessa extensão no canto direito da barra de status:

 

Clique sobre esse ícone e vá em "Manage Styles...". Ali você poderá ver todos os seus estilos (que agora estará vazio, já que você ainda não criou nenhum). Clique no botão "Write..." para adicionar um novo. Abaixo, o que acabamos de criar:

@namespace url(<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>);
@-moz-document domain("www.bibliaonline.com.br") {
#body {
width:auto !important;
}
#content {
width:auto !important;
}

/*

Comentei essa parte, já que a propaganda é muito bem comportada e o site

depende disso pra "sobreviver". Use isso em outros sites que abusem dos anúncios.

#header div.ad { visibility:hidden !important; }

*/ #sidebar { float: none !important; } }

UPDATE:

Comentei a parte que tira os anúncios da parte superior do site, embora a figura ilustrativa continue sem esses anúncios. Leia o comentário e pense duas vezes antes de ativá-lo.

Algumas coisas importantes para lembrar:

  1. A linha "@-moz-document domain("www.bibliaonline.com.br")" diz que essa folha de estilos CSS será aplicada para os sites dentro de www.bibliaonline.com.br
  2. Veja que na frente das propriedades tem a marcação "!important". Sem isso as suas modificações não vão funcionar. Explicação: o Stylish vai fazer um merge das folhas de estilos - a que veio com o site e a que você escreveu; se você não marcar com "!important" ele simplesmente vai dar prioridade maior para a que veio com o site e suas alterações não vão funcionar.

Abaixo, duas figuras: a primeira com a janela de edição do estilo aberta e a segunda com o resultado final das alterações no site.

Conclusão

Como o Tom falou no post dele, existe o site  http://userstyles.org/ com milhares de folhas de estilo para os sites mais comuns. Tentei dar uma ênfase diferente aqui, alguma coisa como "faça você mesmo", mas não deixe de verificar antes se já tem pronto nesse site o que você pretende fazer.

 

Essa foi a segunda parte da série. Não deixe de ver em breve a última parte, em que falarei sobre o Greasemonkey; para os alunos da Poli que têm raiva daquelae porcaria de webmail webmail com falta de recursos, talvez sirva para mais alguma coisa ;-).

Palavras-chave: Firefox, Stylish

Postado por Lucas De Marchi | 3 usuários votaram. 3 votos | 4 comentários

Novembro 01, 2008

default user icon
Postado por Lucas De Marchi

Esse é o primeiro de uma série de 3 posts em que vou falar de 3 ferramentas que uso para "consertar a web". Em ordem de posts: Firebug, StylishGreasemonkey. Todas elas são extensões do Firefox.

Rápida reflexão antes de começar: eu sei que um dos meus primeiros posts também era pra ser uma série de 3 (que até agora não saiu do primeiro); mas agora eu aprendi a ir colocar o post como privado pra depois liberá-lo como público, o que ajuda bastante na hora de escrever um(ns) post(s).

Primeiro, "consertar" a que me referi no primeiro parágrafo não significa que ao descobrir um bug em um site você vai ser capaz de consertá-lo sem entrar em contato com os administradores do site de modo que todos possam usufruir dessa melhoria; o que quis dizer é que muitas vezes a aparência de um site não te agrada e que você pode mudar a forma como você o visualiza. Lógico que você pode compartilhar o que você fez depois, mas é importante frisar que estamos mudando apenas o modo como visualizamos os dados que o site enviou. Em outras palavras, podemos modificar duas coisas que rodam do lado cliente (ou se você preferir, no seu browser) e que "dão a cara" do site que você está visualizando: CSS e Javascript.

É correto afirmar que o jeito "normal" de se usá-los é baixar os scripts javascript e folhas de estilo CSS juntamente com os HTMLs do site que você quer acessar, mas não é correto dizer que você é obrigado a formatar exatamente como está escrito nesses arquivos; e é exatamente isso que nós vamos fazer: com a ajuda de alguma extensões do Firefox, formatar o site de uma forma diferente para que você o visualize do jeito que gosta.

Vamos então à primeira dica: Firebug. Com ela você pode achar facilmente a parte do código HTML/CSS que você vai ter que mexer para modificar o site que você quer: basta passar o mouse em cima (com a opção inspect ligada) que ele localiza a entrada correspondente no HTML e os estilos CSS que estão sendo aplicados.

Um exemplo vale mais que mil palavras: suponhamos que eu não goste da forma de apresentação do meu blog, em especial essa barra lateral na direita; usando o Firebug fica fácil localizar (e até aplicar alterações temporárias) o que eu teria que fazer para mudar a sua aparência. Segue a imagem que ilustra o exemplo (como vocês podem ver, foi feita em quanto escrevia esse post):

Firebug em ação

 

Na imagem anterior podemos ver:

  1. A opção Inspect ligada, que permite localizar o HTML correspondente à posição do mouse;
  2. Um quadrado azul indicando o que o mouse está "selecionando";
  3. O código HTML correspondente;
  4. Os estilos CSS que estão sendo aplicados a essa seção: aqui você pode mudar os valores das entradas e adicionar outras, vendo o efeito imediato na tela.

Aí você diz: "Ok, muito bom!! Mas as mudanças que eu faço não são salvas quando entro de novo no site". Lembre-se: esse é o primeiro post de uma série de três. Stay tuned!

 

Palavras-chave: Firebug, Firefox, Fix the web, Greasemonkey, Stylish

Postado por Lucas De Marchi | 3 usuários votaram. 3 votos | 2 comentários

Outubro 09, 2008

default user icon
Postado por Lucas De Marchi

Algumas coisas das quais sinto falta no stoa:

  1. Permitir salvar um post sem publicá-lo. Assim podemos editar um post um pouco de cada vez e só quando estiver realmente pronto publicá-lo. Algumas vezes já fiquei usando o Gmail para ir editando o post e depois o coloquei aqui. Seria legal esse recurso
  2. Permitir a cada usuário colocar o AdSense em seu blog.

 

Palavras-chave: Stoa, Sugestões

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 2 usuários votaram. 2 votos | 12 comentários

default user icon
Postado por Lucas De Marchi

Creio que grande parte do pessoal da minha classe de Engenharia de Computação (Cooperativo) sabe que eu gosto da distribuição de Linux Gentoo. Porém, já faz um tempo que deixei de usá-lo: no meu último ano em São Paulo usava ele no Desktop, porém já tinha colocado o Ubuntu no notebook.

Fiquei um bom tempo com o Ubuntu no notebook e, quando vim pra Itália, o Gentoo acabou sendo tirado do meu antigo desktop, que agora roda Windows XP (primeiramente pra minha irmã, em casa, e mais tarde foi levado para o escritório do meu pai).

Sempre gostei de testar outras distribuições. No Brasil, assim que saía uma versão nova de alguma distribuição eu queimava um CD pra testar o que tinha de novo (ou pra conhecer os programas que eles usavam), mas geralmente os testes não iam além de rodá-los como Live CDs. Com o surgimento das máquinas virtuais (melhor... a sua popularização para o uso em desktops) deixei de usar LiveCDs e passava a instalá-las em uma VM usando VirtualBox, Vmware ou Qemu. Foi assim que testei várias distros como Fedora, OpenSuse, Sabayon, Mandriva, CentOS, Slax, Dreamlinux, gOS, Zenwalk, Foresight, etc.

Depois de algum tempo com o Ubuntu instalado - e sempre fazendo os upgrades: 6.10, 7.04 (no laptop que tinha no Brasil); 7.10, 8.04 (Itália) - acabei me cansando dele e comecei a pensar em usar outra distro. A gota d'água foi o meu HD interno que parou de funcionar (mas é lógico que eu tinha backup em um HD externo). Como estava em época de provas e fazendo esse projeto, não podia mandá-lo para a assistência técnica, então resolvi instalar alguma distribuição no meu HD externo. Estava entre o Fedora e o Mandriva e este último acabou obtendo a minha preferência, mas não sei dizer bem por qual motivo... eu simplesmente tinha que colocar uma delas e escolhi a última.

Posso dizer que minha experiência com essa distro foi boa. Recomendo às pessoas instalarem e "darem uma chance a ela". Percebe-se que ela é bem focada na facilidade de uso, assim como o Ubuntu.

Apesar de estar satisfeito com essa última distro, confesso que sentia saudade do jeito Gentoo de ser: ele não te dá tudo mastigado, mas ensina como funciona. Não querendo voltar ao Gentoo principalmente pelo tempo que demora para ter tudo rodando e pelo tempo para instalar uma simples aplicação resolvi testar o Arch Linux. Ele segue o mesmo princípio do Gentoo de te ensinar como as coisas funcionam ao invés de te dar tudo pronto, mas, ao contrário daquele, você não precisa compilar cada programa que vai instalar. Eu sei que tanto o Gentoo pode instalar programas já compilados quanto o Arch pode compilar o programa para instalar, mas os métodos default são diferentes.

Há 3 semanas mais ou menos meu notebook chegou da assistência técnica (Asus - que trocou o HD e o sistema de refrigeração) e instalei o Arch. Como sempre faço (desde que parei de usar o Kurumin e mudei para o Gentoo) instalei o Gnome como interface gráfica, porém fiquei um pouco triste que a última versão disponível do Gnome é a 2.22 (e não a 2.24 que saiu há algumas semanas e que deve acompanhar as próximas versões de Fedora, Ubuntu e Mandriva. Contudo, posso dizer que agora sou um feliz usuário de Arch.

O que mais me agrada em distros como Arch e Gentoo é que você tem o total controle do que está rodando. Outra coisa, até por consequência da primeira, é a velocidade do boot que é infinitamente superior a de Ubuntu, Mandriva e Fedora (vejamos como vai ficar a "guerra" pelo boot mais rápido depois da última Linux Plumbers Conference... aliás, parabéns ao pessoal da Intel e do Fedora).

Terminando, nas figuras abaixo estão as distribuições que usei em algum computador meu e que foram mais do que simples testes de LiveCD ou Virtual Machines.

 

 

 E vocês, por quais distros já passaram?

 

-== UPDATE ==-

O título se justifica (em contradição com a figura acima) porque considero o Gentoo como a minha primeira distribuição "de verdade". Não por deméritos do Kurumin, mas porque quando o usava, ele era apenas um segundo SO, sendo o Windows o SO principal e em qual passava a maior parte do tempo. Só para constar, antes ainda do kurumin cheguei a usar outros como Conectiva e Red Hat.

 

Palavras-chave: Distribuições Linux

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 1 usuário votou. 1 voto | 4 comentários

Outubro 03, 2008

default user icon

Julho 29, 2008

default user icon
Postado por Lucas De Marchi

Segue abaixo o convite para a 72.a Sexta Filisófica:

Sexta Filosófica

Palavras-chave: filosofia, religião, Sexta Filosófica

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 0 comentário

Julho 26, 2008

default user icon
Postado por Lucas De Marchi

Já faz algum tempo que vi a imagem abaixo no site do meu professor da matéria "Foundations of Operations Research". Como achei muito legal, resolvi compartilhar:

 

 

 

Palavras-chave: Diversão, piada

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 0 comentário

Junho 24, 2008

default user icon
Postado por Lucas De Marchi

Enquanto não sai o segundo capítulo nesse blog, o br-linux continua a mil e agora tem promoção por lá. Grande iniciativa. Veja mais informações abaixo e, se você tem um blog, também pode participar da promoção. Além disso lembro o objetivo principal dessa campanha, que é a divulgação da doação a projetos de software livre.

 

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!

 

Como regra para participar da campanha, fica meu email de contato:

 

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 2 comentários

Junho 02, 2008

default user icon
Postado por Lucas De Marchi

    Já faz um tempo que estou querendo escrever esse(s) post(s). Só não o fiz antes por causa do tamanho e porque criar uma linha de raciocínio com introdução, meio e fim é algo que não faço desde a fuvest, o que me deixa com um pé atrás de não conseguir expor meu ponto de vista de forma que quem lê possa compartilhá-lo e compreender o título: "Admirável". Apesar de ter feito isso no trabalho de Iniciação Científica entre 2005 e 2006, não é a mesma coisa que fazer uma dissertação do tipo que proponho agora.

Maçã


    A idéia de escrevê-lo surgiu no meio de duas aulas completamente distintas: "Data Mining and Text Mining" e "Criptografia". A primeira estimulou-me a escrever a introdução e a conclusão, enquanto a segunda a escrever o recheio. A introdução farei neste post. O recheio farei em breve e já adianto que se trata de falar um pouco de cada pessoa de que ouvimos falar durante o curso de Engenharia e, em particular, da área de computação. No terceiro e último post, tentarei juntar as duas partes e criar uma conclusão.
    Você já parou pra pensar quão difícil é, em termos computacionais, reconhecer que uma maçã é uma maçã? Poderíamos dizer que uma maçã tem geralmente um corte transversal como o da figura abaixo, mais ou menos 8 cm de diâmetro e uma variação de cores vermelha, verde e amarela. Poderíamos também admitir uma determinada variação em cada parâmetro de forma que um computador pudesse corretamente classificar várias maçãs diferentes como sendo maçãs. Porém, qual é variação dos parâmetros que podemos admitir de forma que nosso computador, além de classificar todas as maçãs como sendo maçãs não classifique outras frutas como maçã? Esses dois objetivos são contra-producentes: se limitarmos muito os valores dos parâmetros, como por exemplo a cor, é provável que algumas maçãs não sejam corretamente classificadas; se deixarmos uma boa "margem de erro" em torno de uma cor é provável que outras frutas, como por exemplo as laranjas, sejam classificadas como maçãs. Para resolver esse problema, além de uma análise criteriosa dos parâmetros a serem levados em consideração, deveríamos nos preocupar qual é pior: um "falso-positivo", ou seja, o computador classificar uma fruta que não é uma maçã como  uma maçã ou um "falso-negativo", ou seja, uma maçã não ser classificada como tal.
    Outro problema que também devemos considerar é: seria razoável admitir grandes variações nos valores de algum(s) parâmetro(s) desde que alguns mantenham-se dentro de certos limites? Por exemplo: imagine que você está caminhando na rua e quando vira a esquina vê uma fruta gigante do tamanho de um carro, exatamente igual, exceto pelo tamanho, a uma maçã; a reação mais óbvia que poderíamos ter seria exclamar: "Caramba! Uma maçã gigante!". Vou além: e se essa maçã, além de ser gigante estivesse podre (ou seja, sua cor fosse uma combinação de tonalidades pretas)? Creio que uma grande parte da população mundial poderia dizer que se trataria de uma "maçã gigante podre". Se fosse um robô que estivesse em frente a essa "maçã gigante podre" ele será que ele teria um algoritmo bom o suficiente para classificá-la dessa forma? Eis o problema de quão bem um algoritmo pode se adaptar a situações inesperadas.
    Não é o escopo dessa introdução discutir como problemas desse tipo poderiam ser resolvidos e aconselho a quem se interessar dar uma olhada em temas como "data mining - classification problems", "artificial neural networks", "machine learning", "reinforcement learning", "genetic algorithms". O objetivo é apenas o de pararmos pra pensar quão complexo e belo é o nosso cérebro: praticamente no mesmo instante em que vemos um determinado objeto podemos processar todas as informações com respeito a cor, tamanho, textura, formato e classificá-lo corretamente. Podemos, até com certa facilidade, nos adaptar a situações extremas e soltarmos exclamações do tipo "Caramba!! Uma maçã podre gigante ali na esquina!". Ou, ao vermos uma maçã fatiada em cima da mesa, ainda assim reconhecer que se trata de uma maçã (este último exemplo muito mais real que o primeiro). Não é à toa que  existe um campo de pesquisa chamado "Natural Computation" que procura imitar o que a natureza faz, o raciocínio humano; ele é a base para vários algoritmos citados acima. Para se divertir um pouco, veja no google imagens quantas formas diferentes de maçãs existe e procure tentar classificá-las de uma forma algorítmica.



-- A continuar --

 

Palavras-chave: Admiração, Algoritmos, Computação, Data Mining, Engenharia, Maçãs

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 1 usuário votou. 1 voto | 2 comentários

Maio 23, 2008

default user icon
Postado por Lucas De Marchi

Esse é o primeiro post "técnico" desse blog e vou aproveitá-lo para falar rapidinho de um projeto que estou fazendo na faculdade, que foi a motivação de eu conhecer essa maravilhosa ferramenta: GNU Global.

O projeto se trata de um driver de rádio FM para linux embarcado, que estou fazendo junto com a Cristina. Se trata de um "convênio" entre a empresa STMicroeletronics e a universidade aqui da Itália na matéria "Laboratory of Operating Systems and Software Design": metade da nota dessa matéria é obtida com esse projeto. Essa empresa tem uma distribuição linux própria, STLinux (porém a versão que a gente está usando ainda não está disponível para o público em geral e usa o kernel 2.6.20).

Enquanto estava desenvolvendo esse driver, vi a pessoa responsável por me orientar usando uma ferramenta para pesquisa no código fonte e fiquei curioso, perguntei do que se tratava e ele me apresentou: "estou usando o GNU Global, uma ferramenta para indexar e pesquisar código-fonte". Quem já desenvolveu um driver para Linux sabe o sofrimento que é ficar procurando em 1000 arquivos a declaração de uma determinada função ou struct, bem como descobrir como aquela função que você precisa é implementada.

A instalação e configuração é bem simples. Para instalar use o gerenciador de pacotes da sua distribuição - no Ubuntu o pacote chama-se (sic.) "global". Para configurar, você vai ter que dizer qual é o diretório que você quer indexar: basta ir no diretório que você quiser (no meu caso a raiz do source do kernel) e digitar gtags.

O próximo passo: como usar. Pela página do projeto podemos ver que essa ferramenta se integra a vários IDEs e editores de texto, porém eu prefiro usar a linha de comando e assim não ficar dependente de um editor (embora tenha usado apenas o vim e o gedit ultimamente). Para isso temos a ferramenta globash, que é um bash modificado com alguns comandos predefinidos do Global. Façamos um exemplo:

Suponhamos que eu queira saber em que arquivo está declarada a função i2c_writereg: basta digitar "x i2c_writereg" que ele vai mostrar.

[/home/lucas/Desktop/Poky/linux-2.6.20-nhk15] x i2c_writereg
>    1    i2c_writereg      495 arch/cris/arch-v10/drivers/i2c.c i2c_writereg(unsigned char theSlave, unsigned char theReg,
     2    i2c_writereg      384 arch/cris/arch-v32/drivers/i2c.c i2c_writereg(unsigned char theSlave, unsigned char theReg,
     3    i2c_writereg     1400 drivers/media/dvb/ttpci/av7110.c int i2c_writereg(struct av7110 *av7110, u8 id, u8 reg, u8 val)
     4    i2c_writereg      122 drivers/media/dvb/ttpci/budget-av.c static int i2c_writereg(struct i2c_adapter *i2c, u8 id, u8 reg, u8 val)

Se quisermos visualizar o primeiro arquivo, "show", o segundo, "show 2" e assim por diante (note o ">" na frente da primeira referência, indicando que o primeiro arquivo está "selecionado").

Além disso você pode querer ver, por exemplo, chamadas a essa função no código fonte: basta trocar o comando de x para r. No nosso exemplo, ficaria: "r i2c_writereg". Para mais opções, consulte a man page, tem vários exemplos lá.

Além disso, essa ferramenta tem várias outras funcionalidades, como gerar HTMLs do seu código-fonte deixando-o navegável pela web. Ainda não usei isso, mas mais detalhes podem ser encontrados no site do projeto.

Para terminar, uma dica: autocompletion funciona!! Então, quando não souber o nome inteiro da função, lembre-se: o tab é seu amigo.

 

Palavras-chave: C, Kernel, Linux, programação

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 5 usuários votaram. 5 votos | 2 comentários

Abril 23, 2008

default user icon
Postado por Lucas De Marchi

Quando você percebe que vai ter 10 provas de toda a matéria do semestre em 1 mês além de 3 trabalhos pra entregar na faculdade, você se pergunta: o que fazer? A minha resposta: tirar férias. Foi isso que fiz do dia 17 ao dia 20 de abril. Explico: as provas serão em julho; nada melhor que fazer uma pausa, passear um pouco pra pegar pesado depois e é isso que pretendo fazer daqui pra frente.

Depois do blá blá bá, os relatos. Eu e o Matiussi fomos para Bruxelles (ou Brussel, em inglês) ficar na casa de um amigo. Chegamos na quinta-feira de manhã e fomos conhecer a cidade. A cidade é bonita e, apesar de não entender nada de Francês e Holandês (as duas línguas da Bélgica) foi possível se virar com o inglês. Entre outras atrações da cidade, visitamos o átomo gigante, como pode ser visto na foto abaixo.

Átomo em Bruxelles

No dia seguinte fomos para Brugge (ou Bruges, em inglês). A cidade é famosa pelos seus canais, que em alguns lugares lembra Venezia. Pareceu-me uma cidade bem turística, pequena e muito bonita.

Canal em Brugge

Um pouco de comida: uma coisa que as pessoas comem muito é batata frita. Nas 3 cidades da Bélgica que fui pude ver pessoas na rua com um cone ou uma caixinha com batata frita. É muito saborosa, melhor até que a do McDonalds.

Como o Eduardo, nosso amigo que mora em Bruxelles, pegou um carro na sexta-feira, aproveitamos para conhecer outras cidades, mas agora de carro. Uma coisa que ainda não é muito comum no Brasil e que aqui eles usam bastante nos carros: GPS. E é realmente muito prático: fomos para todos os lugares que queríamos (praticamente) sem errar o caminho e sem ficar consultando mapas. No Sábado fomos para Antwerpen (a capital mundial do diamante) e no Domingo para Amsterdam na Holanda. Antwerpen é parecida com Bruxelles, mas é uma cidade mais comercial: vários shoppings, lojas, pessoas comprando; chegou a lembrar um pouco algumas regiões comerciais de São Paulo. Amsterdam é muito32 cheia de gente. Em pleno Domingo, todo o comércio estava aberto; parque de diversões no meio de uma praça, bem no centro da cidade. O que mais me impressionou foi o parque da renovação, que é gigante e muito bonito. Abaixo, uma foto de cada cidade.

Antwerpen

Renovatie Vondelpark em Amsterdam

 

Segunda-feira, às 8h da manhã já estava de volta em Milão. Foi muito boa a viagem, deu pra descansar bastante, mas agora falta cumprir a segunda parte da proposta: estudar pras provas.

Mais fotos estão disponíveis no meu picasaweb.

Palavras-chave: Bélgica, Holanda, Viagens

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 2 usuários votaram. 2 votos | 2 comentários

Abril 14, 2008

default user icon
Postado por Lucas De Marchi

Como estudante de Engenharia de Computação, o primeiro post não poderia deixar de ser HELLO WORLD!!!

 

Estava pensando em dividir posts por assunto (talvez criando mais de um blog), porém decidi de não fazer-lo, já que provavelmente daqui alguns meses não colocarei nada de novo em nenhum deles. Lembrei da propaganda que meu amigo Elefantinho fez do Stoa, então resolvi me cadastrar e criar esse blog. Então aqui você (talvez) encontrará um pouco de tudo: tecnologia, filosofia, religião, diversão e relatos de viagens. Contudo espero me concentrar no primeiro.

 

Divirtam-se. 

Palavras-chave: Hello World

Esta mensagem está sob a licença CreativeCommons Atribuição, Não-Comercial.

Postado por Lucas De Marchi | 2 comentários