<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1071551496408414305</id><updated>2012-01-11T09:48:36.069-02:00</updated><category term='linux'/><category term='dicas'/><category term='noticias'/><category term='geoprocessamento'/><category term='msx'/><category term='gtk'/><category term='livros'/><category term='software livre'/><category term='inicial'/><category term='blues'/><category term='series'/><category term='programação'/><category term='reclamacao'/><category term='pesquisa científica'/><category term='doutorado'/><category term='delirios'/><category term='gaia'/><category term='senra'/><category term='netbeans'/><category term='jogos'/><category term='mestrado'/><category term='gnome'/><title type='text'>The Last Starfighter</title><subtitle type='html'>Software Livre, GNU/Linux, Programação, GTK/GNOME, Eletrônica, Filmes, Séries, Livros, Xadrez... e principalmente delírios... muitos delírios!! :-)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-8288534113377552800</id><published>2011-05-27T10:56:00.005-03:00</published><updated>2011-05-27T11:02:09.922-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Botão para escolher entre "tree" e "places" no Nautilus Elementary</title><content type='html'>.&lt;br /&gt;Você instalou o ótimo Nautilus Elementary, mas não gostou de perder aquele botãozinho que trocava entre a visão "tree" e "places", do painel da esquerda?&lt;br /&gt;&lt;br /&gt;Nada mais fácil de resolver...&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;abra o terminal;&lt;/li&gt;&lt;li&gt;execute o gconf-editor;&lt;/li&gt;&lt;li&gt;abra o "diretório" apps;&lt;/li&gt;&lt;li&gt;dentro de apps, procure e abra o "diretório" nautilus;&lt;/li&gt;&lt;li&gt;dentro dele, clique em "preferences";&lt;/li&gt;&lt;li&gt;marque "sidebar_show_places_menu";&lt;/li&gt;&lt;li&gt;feche o gconf-editor&lt;/li&gt;&lt;li&gt;feche o terminal.... (dããã!)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Se tiver algum nautilus aberto, feche e reabra.&lt;br /&gt;&lt;br /&gt;Tão fácil que nem vou colocar screenshots... :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-8288534113377552800?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/8288534113377552800/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=8288534113377552800' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8288534113377552800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8288534113377552800'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2011/05/botao-para-escolher-entre-tree-e-places.html' title='Botão para escolher entre &quot;tree&quot; e &quot;places&quot; no Nautilus Elementary'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7091107580425747663</id><published>2011-05-19T14:52:00.007-03:00</published><updated>2011-05-19T15:26:20.959-03:00</updated><title type='text'>Programação de GUIs utilizando GTK - Parte 3</title><content type='html'>.&lt;br /&gt;Back to life... :-)&lt;br /&gt;&lt;br /&gt;Vamos estudar detalhadamente o programa "aloumundo" apresentado no post anterior. Também veremos alguns detalhes relacionados com a consulta a documentação da GTK. Por enquanto, estes artigos ainda serão baseados na GTK2, mas tentarei mostrar comparações com a nova GTK3, na medida do possível.&lt;br /&gt;&lt;br /&gt;Falando em GTK3, algumas observações:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;houve quebra da compatibilidade entre GTK2 e GTK3. Ou seja, não teremos 100% das coisas que funcionam em GTK2 funcionando diretamente (sem modificações) na GTK3;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;devido a essa quebra de compatibilidade, é possível instalar no seu sistema as duas bibliotecas separadamente, e usar (na compilação) conforme o caso. Para instalar a nova GTK3 (para desenvolvimento) e suas dependências, basta instalar o pacote libgtk-3-dev;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;já que estamos no gerenciador de pacotes... vamos instalar também devhelp (acesso a documentação das bibliotecas), libgtk2.0-doc (documentação offline da biblioteca GTK2), e libgtk3.0-doc (idem... GTK3);&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;para compilar com GTK3, basta alterar o parâmetro de pkg-config (veja post anterior) para "gtk+-3.0":&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tFrSnj2zwjo/TdVZSroBWbI/AAAAAAAAAPQ/ohvXykc_VWo/s1600/fig_01.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://3.bp.blogspot.com/-tFrSnj2zwjo/TdVZSroBWbI/AAAAAAAAAPQ/ohvXykc_VWo/s400/fig_01.png" alt="" id="BLOGGER_PHOTO_ID_5608487088442923442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;O programa funciona perfeitamente, a janela é criada e tals... mas note que, diferente do que acontece se compilarmos com GTK2, aparece uma mensagem de erro na execução:&lt;br /&gt;&lt;br /&gt;&lt;span style=" font-weight: bold;font-family:courier new;" &gt;Gtk-Message: Failed to load module "canberra-gtk-module"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para resolver isso, basta instalar o pacote "libcamberra-gtk3-module" e suas dependências.&lt;br /&gt;&lt;br /&gt;Mais do que simplesmente resolver um problema técnico imediato (um erro de compilação/execução), o fato acima gera a seguinte reflexão: "será que, ao instalarmos a biblioteca de desenvolvimento libgtk3-dev, já não deveria ser instalada também, automaticamente (como dependência), a biblioteca libcamberra-gtk3-module?" Ou seja, será que os desenvolvedores/empacotadores da GTK3 "comeram mosca" nessa questão ?&lt;br /&gt;&lt;br /&gt;Feita esta reflexão, você pode ter 2 ações possíveis: reclamar da vida, reclamar dos desenvolvedores, dizer que a coisa tá mal feita, e ficar esperando alguém corrigir... ou ... entrar verdadeiramente no espírito do desenvolvimento colaborativo do software livre, e 1) identificar se isso é realmente um bug e 2) caso seja um bug, contribuir para seu conserto, que vai desde informar esse fato em uma lista de discussão apropriada ou em um sistema de gerenciamento de bugs, até efetivamente mudar o código. Nessa linha de ação, enviei um email para a lista "gnome-love" (específica para auxílio a novatos) para receber o feedback dos mais experientes sobre o fato. Depois coloco aqui a(s) resposta(s).&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Segue então, o programa que iremos analisar:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"&gt;&lt;code style="color:#000000;word-wrap:normal;"&gt;1:  #include &amp;lt;gtk/gtk.h&amp;gt;&lt;br /&gt;2:&lt;br /&gt;3:  int main (int argc, char *argv[])&lt;br /&gt;4:  {&lt;br /&gt;5:&lt;br /&gt;6:    GtkWidget *window;&lt;br /&gt;7:&lt;br /&gt;8:    gtk_init (&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;9:&lt;br /&gt;10:    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;11:    gtk_window_set_title (GTK_WINDOW (window), "Alou, mundo!!");&lt;br /&gt;12:&lt;br /&gt;13:    gtk_widget_show (window);&lt;br /&gt;14:&lt;br /&gt;15:    gtk_main ();&lt;br /&gt;16:    return 0;&lt;br /&gt;17:&lt;br /&gt;18:  }&lt;br /&gt;19:&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Para desenvolver com GTK, precisamos incluir (#include) o arquivo gtk.h. Apesar de gtk ser composta por várias bibliotecas de apoio, não precisamos indicá-las todas, o próprio gtk.h já faz isso pra gente. Claro que você precisará indicar outras bibliotecas (não relacionadas com GTK) que você quiser usar no seu programa.&lt;br /&gt;&lt;br /&gt;Vamos então, nesse programa, criar e apresentar ao usuário uma simples janela. Precisamos então de uma variável para ser a referência desta janela. Criamos então a variável window, como um ponteiro para GtkWidget. A explicação de porque estamos criando esta variável como ponteiro para GtkWidget, e não GtkWindow, está no primeiro post desta série. Mas para relembrar rapidamente, todo objeto em gtk é construído a partir do objeto básico GtkWidget, utilizando o recurso de herança do paradigma de orientação a objetos. Logo, uma GtkWindow &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; um GtkWidget.&lt;br /&gt;&lt;br /&gt;A função gtk_init é reponsável pela inicialização do ambiente GTK. Deve ser chamada antes de qualquer outra.&lt;br /&gt;&lt;br /&gt;Vamos então, enfim, criar a janela. Atente para o fato que, neste passo, iremos criar a janela EM MEMÓRIA, ou seja, na verdade não vamos criar "o objeto gráfico janela, na tela", mas sim, criar as estruturas de dados em memória que vão armazenar e controlar o funcionamento deste futuro objeto gráfico. A função que faz isso é a gtk_window_new. Vamos ver na documentação qual é o protótipo desta função (ou seja, quais parâmetros precisamos passar para ela executar seu trabalho, e o que ela nos retorna). Vou utilizar para isso o DEVHELP, acessando dentro dele o "GTK+ 2 reference manual":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-TCmn4nG4QD4/TdVZS6o-fCI/AAAAAAAAAPY/COnX0_NF1z0/s1600/fig_02.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://1.bp.blogspot.com/-TCmn4nG4QD4/TdVZS6o-fCI/AAAAAAAAAPY/COnX0_NF1z0/s400/fig_02.png" alt="" id="BLOGGER_PHOTO_ID_5608487092473461794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para usar a função, então, precisaremos indicar um "GtkWindowType". O que é isso? É um parâmetro que diz que tipo de janela iremos criar, se uma janela principal (com tudo que tem direito, bordas, redimensionamento, título, etc...) ou uma janela "básica", sem esses recursos. Se clicarmos no próprio link "GtkWindowType, o DEVHELP vai nos mostrar que dados são válidos para este parâmetro (ou seja, quais os valores que estão definidos na enum GtkWindowType).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-pu5rPZP72ro/TdVZTA_qmPI/AAAAAAAAAPg/ingGY-nRnBs/s1600/fig_03.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 274px; height: 171px;" src="http://2.bp.blogspot.com/-pu5rPZP72ro/TdVZTA_qmPI/AAAAAAAAAPg/ingGY-nRnBs/s400/fig_03.png" alt="" id="BLOGGER_PHOTO_ID_5608487094179240178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Podemos então passar para a função o valor GTK_WINDOW_TOPLEVEL (para uma janela normal, com tudo) ou GTK_WINDOW_POPUP (a janela básica "no osso"). O DEVHELP mostra uma descrição básica para esses valores.&lt;br /&gt;&lt;br /&gt;Voltando a definição da função gtk_window_new, vemos que ela retorna um ponteiro para o tipo GtkWidget. Ou seja, vamos armazenar este retorno (que é efetivamente a referência para os dados da janela criados na memória) na variável window, criada anteriormente.&lt;br /&gt;&lt;br /&gt;Vamos agora definir o texto que vai aparecer na barra de título da janela (Não esqueça que nossa janela ainda é um "projeto" de janela, na memória, e não um objeto gráfico bonitinho na tela do computador... ). Para isso utilizaremos a função gtk_window_set_title. Lá vamos nós novamente no DEVHELP...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-7WGV_VcaoX4/TdVZTVdno0I/AAAAAAAAAPo/tqz1Mu2BDW0/s1600/fig_04.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 130px;" src="http://4.bp.blogspot.com/-7WGV_VcaoX4/TdVZTVdno0I/AAAAAAAAAPo/tqz1Mu2BDW0/s400/fig_04.png" alt="" id="BLOGGER_PHOTO_ID_5608487099673584450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A função não retorna nada (void), mas precisa de 2 parâmetros: um ponteiro para GtkWindow (referência da janela que vamos definir o texto na barra de título) e um ponteiro para "const gchar".&lt;br /&gt;&lt;br /&gt;Como diria Jack, "vamos por partes": armazenamos a referência da janela num ponteiro para GtkWidget, e agora você diz que quer um ponteiro para GtkWindow? Bem, se você relembrar o primeiro post dessa série, verá que a hierarquia de objetos (widget hierarchy) começa em GtkWidget e, neste caso específico, termina em GtkWindow. Ou seja, uma GtkWindow &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; uma GtkWidget, então podemos usar uma variável no lugar da outra sem problemas! (ou quase...)&lt;br /&gt;&lt;br /&gt;É "quase" sem problemas porque a linguagem C não foi construída levando em consideração o paradigma da orientação a objetos. Desta forma, algumas coisas não são tão transparentes como seriam numa linguagem especificamente projetada para este paradigma. No nosso caso, poderemos usar a variável window, que é GtkWidget, em um lugar que se espera uma GtkWindow, mas teremos que indicar que uma pequena conversão deverá ser feita. Isto é feito utilizando-se uma "função" que faz esse tipo de conversão pra gente. Neste caso, fica:&lt;br /&gt;&lt;br /&gt;&lt;span style=" font-weight: bold;font-family:courier new;" &gt;gtk_window_set_title (  GTK_WINDOW( window ) , ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A função que "converte" algo em um GtkWindow é... GTK_WINDOW() !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(estou colocando "converte" entre aspas porque não é uma conversão propriamente dita, é mais uma indicação de tipo)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mais devagar:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a variável window é um GtkWidget;&lt;/li&gt;&lt;li&gt;a "função" GTK_WINDOW( window ) indica que a variável window agora deverá ser tratada como uma GtkWindow. Nenhum problema aqui, pois como vimos, pelo paradigma de orientação a objetos, uma GtkWidget &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; um GtkWindow!&lt;/li&gt;&lt;li&gt;como window agora será tratada como um GtkWindow, podemos passar ela para a função gtk_window_set_title sem problemas!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Cuidado, se você consultar o livro de Andrew Krause, ele usa o termo "cast" para indicar essa operação de "conversão":&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;"... you can &lt;span style="font-weight: bold;"&gt;cast&lt;/span&gt; an object as a GtkWindow with GTK_WINDOW() ..."&lt;/span&gt;&lt;/blockquote&gt;Cuidado para não confundir com o cast básico da linguagem C, que tem outra sintaxe (tipo para o qual vamos converter entre parênteses, como em&lt;span style="font-family:courier new;"&gt; ... = (int) ...&lt;/span&gt; ).&lt;br /&gt;&lt;br /&gt;Alguns "casts" disponíveis:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;para GObject: G_OBJECT()&lt;/li&gt;&lt;li&gt;para GtkObject: GTK_OBJECT()&lt;/li&gt;&lt;li&gt;para GtkWidget: GTK_WIDGET() - &lt;span style="font-style: italic;"&gt;Como sempre criaremos objetos do tipo GtkWidget, este "cast" raramente será usado&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;para GtkContainer: GTK_CONTAINER()&lt;/li&gt;&lt;li&gt;para GtkBin: GTK_BIN()&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;... ou seja, uma função cujo nome é o tipo para o qual queremos "converter" em maiúsculas. Simples assim.&lt;br /&gt;&lt;br /&gt;Falta o segundo parâmetro, o ponteiro para const gchar. Isso nada mais é que uma string, que será o texto da barra de título da janela. Se você lembrar, quando passamos algo como "blá blá blá" (uma string) para uma função, estamos na verdade passando o endereço inicial dessa string. Por exemplo, vamos lembrar a função fopen, que abre um arquivo para leitura e/ou escrita. Seu uso é, por exemplo:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;arquivo = fopen ("dados_vendas.txt", "w");&lt;/span&gt;&lt;/blockquote&gt;Seu protótipo é:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;blockquote&gt;FILE * fopen ( const char * filename, const char * mode )&lt;/blockquote&gt;&lt;/span&gt;... ou seja, a variável filename (ponteiro para caracter) recebe o endereço inicial da string "dados_vendas.txt".&lt;br /&gt;&lt;br /&gt;Agora... porque &lt;span style="font-weight: bold;"&gt;gchar&lt;/span&gt;, e não apenas char?&lt;br /&gt;&lt;br /&gt;Isso é feito para permitir compatibilidade em plataformas diferentes. Você lembra que, cada tipo de dado em C tem um tamanho em bytes específico, de acordo com a plataforma que está sendo usada. Por exemplo (hipotético), um int numa plataforma pode requerer 4 bytes de espaço, enquanto que em outra plataforma pode requerer 8 bytes. Para evitar esses problemas, e possibilitar uma compilação multiplataforma mais transparente, a biblioteca GLIB fornece tipos de dados padronizados, que serão "iguais" mesmo em plataformas diferentes. Assim, se no seu programa você utiliza os tipos de dados fornecidos pela GLIB, você poderá compilar em diversas plataformas diferentes sem se preocupar com as diferenças entre elas, no que diz respeito aos tipos de dados.&lt;br /&gt;&lt;br /&gt;Alguns tipos fornecidos pela Glib:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;gchar - equivalente ao char&lt;/li&gt;&lt;li&gt;gint - equivalente ao int&lt;/li&gt;&lt;li&gt;glong - equivalente ao long&lt;/li&gt;&lt;li&gt;gboolean - valores TRUE e FALSE (não tem equivalente no C)&lt;/li&gt;&lt;/ul&gt;Pra resumir:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;gtk_window_set_title (GTK_WINDOW (window), "Alou, mundo!!");&lt;/span&gt;&lt;/blockquote&gt;... vai colocar a string "Alou mundo!!" na barra de título da janela indicada pela variável window.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Próxima linha:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_show (window);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Você deve estar pensando, "agora sim! beleza! um comando para efetivamente mostrar a janela na tela" !!!&lt;br /&gt;&lt;br /&gt;No baby, ainda não...&lt;br /&gt;&lt;br /&gt;Este comando apenas DEFINE a visibilidade de um certo objeto (isto é, se ele está visível ou invisível).&lt;br /&gt;&lt;br /&gt;Essa questão da visibilidade é mais complexa do que parece num primeiro momento. Vejamos.&lt;br /&gt;&lt;br /&gt;Neste nosso primeiro programa, estamos trabalhando apenas com um único objeto (uma janela). Não podemos esquecer que num programa "real", teremos vários objetos ao mesmo tempo, e esses objetos estarão organizados numa hierarquia: uma janela conterá outros objetos. Um desses objetos pode ser uma "frame" (caixa), que pode conter outros objetos (botões, labels, caixas de texto para digitação, etc).&lt;br /&gt;&lt;br /&gt;Cada objeto individual possui seu próprio estado de visibilidade ou não. Mas um objeto ser configurado para estar visível não significa que ele vai certamente ser exibido... porque depende da visibilidade do objeto pai (o objeto que está "acima" na hierarquia) !&lt;br /&gt;&lt;br /&gt;Vamos a um exemplo mais prático: imagine uma janela, e dentro dela, um único botão. Vamos definir esses 2 objetos como visíveis:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_show (window);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_show (button);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quando o ambiente gráfico for efetivamente mostrar essas coisas na tela, os 2 objetos estarão visíveis.&lt;br /&gt;&lt;br /&gt;Digamos agora que, por algum motivo, queremos esconder o botão do usuário (pra ele não poder clicar):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_hide (button);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Isso define que o botão está agora escondido ("hidden"). Quando o ambiente gráfico atualizar a tela, vai aparecer apenas a janela.&lt;br /&gt;&lt;br /&gt;Vamos religar a exibição do botão:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_show (button);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Novamente, janela e botão visíveis na tela.&lt;br /&gt;&lt;br /&gt;Agora vamos esconder A JANELA:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_widget_hide (window);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quando o ambiente gráfico atualizar a tela, não vai mostrar nem a janela, NEM O BOTÃO. Ué, mas o botão não está configurado para ser mostrado? Sim, mas como o botão poderia ser exibido, se ele está dentro da janela, e a própria janela não está visível?&lt;br /&gt;&lt;br /&gt;Então, resumindo, definir a exibição ou não de um certo widget, não significa que ele vai ou não vai ser exibido. É preciso levar em consideração toda a estrutura da interface gráfica que você está construindo.&lt;br /&gt;&lt;br /&gt;Antes de terminar esse comando, vejamos o protótipo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;void gtk_widget_show (GtkWidget *widget);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A função não devolve nada, e espera receber um ponteiro para GtkWidget. Como nossa variável window é deste tipo, podemos passar ela direto, nenhuma "conversão" necessária.&lt;br /&gt;&lt;br /&gt;Último comando, e finalização do programa:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_main();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;return 0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A função gtk_main() passa o controle do gerenciamento da interface gráfica que acabamos de montar e configurar (neste exemplo simples, apenas uma janela vazia) para o ambiente gráfico. Este, então, exibe a interface (a janela) e cuida dos "eventos", ou seja, da interação que o usuário fizer com ela. Note que podemos minimizar, maximizar, mover, redimensionar a janela, mesmo sem termos escrito nenhuma linha de código para tratar dessas questões. Não precisamos, porque quem cuida disso é o próprio ambiente gráfico. gtk_main(), portanto, geralmente é o último comando do nosso main. Quaisquer outros processamentos que nosso programa for realizar (para tratar as ações do usuário) deverá constar de funções, chamadas de "callback functions". Mas isso vai ser papo para outro post.&lt;br /&gt;&lt;br /&gt;Note que a janela aparece e tals, mas quando clicamos no 'x' para fechar, ela até fecha, mas o programa continua rodando (o terminal fica "travado"). Isso acontece porque nosso programa não está tratando nenhum "evento" gerado pelo usuário. Para finalizar o programa, mesmo com a janela fechada, deveremos teclar control-C no terminal.&lt;br /&gt;&lt;br /&gt;Fico por aqui. Lembrando que sugestões e correções são muito bem-vindas. Até a próxima!&lt;br /&gt;&lt;br /&gt;Grande abraço!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7091107580425747663?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7091107580425747663/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7091107580425747663' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7091107580425747663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7091107580425747663'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2011/05/programacao-de-guis-utilizando-gtk.html' title='Programação de GUIs utilizando GTK - Parte 3'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-tFrSnj2zwjo/TdVZSroBWbI/AAAAAAAAAPQ/ohvXykc_VWo/s72-c/fig_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6712977133539627872</id><published>2010-08-13T15:09:00.006-03:00</published><updated>2010-08-13T15:43:09.019-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Programação de GUIs utilizando GTK - Parte 2</title><content type='html'>.&lt;br /&gt;Neste post vamos tratar da montagem do ambiente para programação GTK, exemplificando através de uma distribuição Ubuntu, versão 10.04 (GNU/Linux), recém instalada. Os requisitos para acompanhar este e os próximos posts são: conhecimentos (nível intermediário) da linguagem C (incluindo ponteiros), geração de arquivos-fonte e sua compilação pela linha de comando (terminal) utilizando o GCC.&lt;br /&gt;&lt;br /&gt;Vamos começar com um programa simples, baseado em GTK+, uma espécie de "Hello World" dos programas em ambiente gráfico: mostra uma janela vazia na tela. O código segue abaixo:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px dashed rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; #include &amp;lt;gtk/gtk.h&amp;gt;&lt;br /&gt;int main (int argc, char *argv[])&lt;br /&gt;{&lt;br /&gt;GtkWidget *window;&lt;br /&gt;gtk_init (&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;gtk_window_set_title (GTK_WINDOW (window), "Alou, Mundo!!!");&lt;br /&gt;gtk_widget_show (window);&lt;br /&gt;gtk_main ();&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Não se preocupe com os detalhes do programa, veremos isso depois. O objetivo agora é apenas conseguir compilar e executar o dito cujo, pelo terminal. Gere um arquivo-fonte em C com o código acima, digamos, aloumundo.c, e tente compilar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;gcc -o aloumundo aloumundo.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E receba um monte de mensagens de erro... :-)&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px dashed rgb(204, 204, 204); width: 99%; height: 100%; overflow: auto; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; aloumundo.c:2:21: error: gtk/gtk.h: No such file or directory&lt;br /&gt;aloumundo.c: In function ‘main’:&lt;br /&gt;aloumundo.c:6: error: ‘GtkWidget’ undeclared (first use in this function)&lt;br /&gt;aloumundo.c:6: error: (Each undeclared identifier is reported only once&lt;br /&gt;aloumundo.c:6: error: for each function it appears in.)&lt;br /&gt;aloumundo.c:6: error: ‘window’ undeclared (first use in this function)&lt;br /&gt;aloumundo.c:10: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Bom, a coisa começa pelo fato de que o compilador não encontrou a biblioteca gtk (personificada, digamos assim, neste exemplo, pelo arquivo gtk.h). E a partir daí, nada relacionado com gtk foi interpretado.&lt;br /&gt;&lt;br /&gt;O que acontece é que, apesar de estarmos usando um ambiente gráfico baseado em GTK (Gnome), ou seja, a biblioteca gtk está garantidamente instalada no sistema, precisamos instalar a biblioteca &lt;span style="font-weight: bold;"&gt;PARA DESENVOLVIMENTO&lt;/span&gt;. Em sistemas baseados no Debian, acho que em 99% dos casos, bibliotecas para desenvolvimento tem seu nome terminado em -dev (em outras distribuições, este tipo de biblioteca tem seu nome terminado em -devel).&lt;br /&gt;&lt;br /&gt;Abrimos o gerenciador de pacotes Synaptic, e procuramos por libgtk:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/TGWP5b8TU2I/AAAAAAAAAOk/18IIhyYlfps/s1600/figura01.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 275px;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/TGWP5b8TU2I/AAAAAAAAAOk/18IIhyYlfps/s400/figura01.png" alt="" id="BLOGGER_PHOTO_ID_5504964336446296930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Descobrimos que o nome correto é libgtk2.0-dev. Ao marcarmos para instalação, o Synaptic automaticamente seleciona outros pacotes que também são requeridos. Na verdade, quando falamos em GTK estamos falando em um conjunto de bibliotecas, como por exemplo, GLib (funções utilitárias de propósito geral), GDK (camada entre o sistema gráfico X e GTK), Pango (textos e fontes), ATK (acessibilidade), entre outras.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/TGWP5DbCpqI/AAAAAAAAAOc/pw96jDfirIQ/s1600/fig02.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 336px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/TGWP5DbCpqI/AAAAAAAAAOc/pw96jDfirIQ/s400/fig02.png" alt="" id="BLOGGER_PHOTO_ID_5504964329864341154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Agora, com as bibliotecas instaladas, podemos tentar compilar novamente, e.... ué?!?!? Erro de novo?&lt;br /&gt;&lt;br /&gt;Isso acontece porque precisamos indicar ao GCC que queremos utilizar uma biblioteca extra, além da biblioteca-padrão, que ele já sabe usar diretamente. Isso significa indicar os seguintes itens:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;caminho para o diretório onde estão os "includes" da(s) biblioteca(s) que você quer usar. Isso é feito utilizando-se a opção -I (letra "i" maiúscula);&lt;/li&gt;&lt;li&gt;caminho para o diretório onde estão as bibliotecas a serem utilizadas. Isso é feito utilizando-se a opção -L (letra "l" maiúscula);&lt;/li&gt;&lt;li&gt;finalmente, quais bibliotecas serão utilizadas, com a opção -l (letra "l" minúscula). Nomes de bibliotecas começam pelas letras "lib" (por exemplo, libblabla), e utilizamos com -lblabla (o nome depois do lib).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Já falamos que GTK é composta de várias bibliotecas de suporte. Isso significa dizer que, para compilar usando GTK, teremos que informar ao compilador, usando as opções acima, diretórios e bibliotecas para todas elas. Felizmente, temos um programa que nos auxilia nisso, chamado pkg-config, retornando as informações necessárias, para um pacote/biblioteca específico. Como nos diz o comando man,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"The  pkg-config  program  is  used to retrieve information about installed libraries in the system.  It is typically used to compile and link against one or more libraries."&lt;/blockquote&gt;&lt;br /&gt;Então vamos experimentar, digite no terminal:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;pkg-config --cflags --libs gtk+-2.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A opção --cflags diz para retornar informações acerca dos includes, e --libs para bibliotecas, tudo isso relativo ao pacote indicado no final da linha, "gtk+-2.0".&lt;br /&gt;&lt;br /&gt;Você deve ter obtido a seguinte saída:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;-pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12  -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... ou seja, todos os parâmetros necessários para você compilar um programa que utilize a biblioteca GTK (e suas companheiras).&lt;br /&gt;&lt;br /&gt;E como utilizamos isso? Copio essa coisa toda e digito junto com o comando de compilação, gcc?? Não precisa. Podemos simplesmente indicar ao GCC que os parâmetros de compilação vão ser informados pelo pkg-config. Fazemos isso dessa forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;font-size:85%;"  &gt;gcc -o aloumundo aloumundo.c `pkg-config --cflags --libs gtk+-2.0`&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A linha acima tem o seguinte efeito: o comando pkg-config é executado, e sua saída é integrada ao resto da linha (compilação com o gcc) como se tivesse sido digitada normalmente. Agora, CUIDADO!! O caracter que envolve o pkg-config é a CRASE (não é a aspa simples, não é o acento agudo!).&lt;br /&gt;&lt;br /&gt;Agora, você deve obter uma compilação sem erros, já que todas as bibliotecas estão instaladas no sistema, e você indicou ao compilador como usá-las.&lt;br /&gt;&lt;br /&gt;Falta só executar sua obra-prima.... :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;./aloumundo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/TGWP5mRErQI/AAAAAAAAAOs/qQeFLq-dfqw/s1600/Screenshot.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 220px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/TGWP5mRErQI/AAAAAAAAAOs/qQeFLq-dfqw/s400/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5504964339217771778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Algumas observações finais:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;se você clicar no 'X' para fechar a janela, ela fecha, mas o programa continua sendo executado (o terminal fica "travado"). Para liberar o terminal, precisamos finalizar o programa na marra, teclando CONTROL-C. Isso acontece porque o 'X' causa apenas a parte gráfica da coisa (a janela some da tela), mas não a finalização do programa. Isso é nossa responsabilidade, e veremos como fazer isso posteriormente.&lt;/li&gt;&lt;li&gt;note que você pode mover a janela, minimizar, maximizar, redimensionar.... como isso é possível, se não escrevemos código para isso? Isso é papo pro próximo artigo.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6712977133539627872?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6712977133539627872/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6712977133539627872' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6712977133539627872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6712977133539627872'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/08/programacao-de-guis-utilizando-gtk.html' title='Programação de GUIs utilizando GTK - Parte 2'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YcnKHahXCEc/TGWP5b8TU2I/AAAAAAAAAOk/18IIhyYlfps/s72-c/figura01.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-112639743719508175</id><published>2010-07-30T00:03:00.004-03:00</published><updated>2010-07-30T00:24:10.678-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='reclamacao'/><title type='text'>O openSUSE é Software Livre? Acho que não...</title><content type='html'>Esbarrei outro dia numa notícia sobre o lançamento de uma nova versão (11.3) da distribuição openSUSE. Como gosto muito de experimentar várias distribuições Linux, ainda mais com as facilidades trazidas pela virtualização, baixei a dita cuja pra brincar um pouco.&lt;br /&gt;&lt;br /&gt;Criei a máquina virtual, bootei, escolhi linguagem... e cheguei numa página onde eu tinha que aceitar uma licença. Como eu brinco com meus alunos, "aquela página que ninguém lê, vai logo clicando em aceito...". Bom, eu parei pra ler.&lt;br /&gt;&lt;br /&gt;Começou promissor... "The openSUSE Project grants to you a license to this collective work pursuant to the GNU General Public License version 2...". Bom, não entendo muito de licenciamento, mas até onde sei, GPL é a licença que garante as liberdades de um software livre. Beleza então, tudo certo!&lt;br /&gt;&lt;br /&gt;Até que li mais um pouco... "As required by US law, you represent and warrant that you: (...) c) will not export, re-export, or transfer openSUSE 11.3 to any prohibited destination, entity... d) will not use or transfer openSUSE 11.3 for use in any sensitive nuclear, chemical, or biological weapons or missile technology end-uses... "&lt;br /&gt;&lt;br /&gt;Parou, parou, parou.... Se me lembro bem, duas das quatro liberdades do software livre são "a liberdade de executar o programa, para qualquer propósito" e "a liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo".&lt;br /&gt;&lt;br /&gt;Então, voltamos a pergunta do título... o openSUSE é Software Livre?&lt;br /&gt;&lt;br /&gt;Abortei a instalação, desliguei a máquina virtual, apaguei o arquivo ISO. Fica pruma outra oportunidade...&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-112639743719508175?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/112639743719508175/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=112639743719508175' title='16 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/112639743719508175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/112639743719508175'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/07/o-opensuse-e-software-livre-acho-que.html' title='O openSUSE é Software Livre? Acho que não...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3337951728152637086</id><published>2010-07-22T11:22:00.004-03:00</published><updated>2010-07-22T11:29:15.795-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>"Esse pessoal de Piracicaba, não é mole não!!"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/TEhUSBGef2I/AAAAAAAAAOU/kVfgQDKDzlk/s1600/maxmenezes.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 182px; height: 250px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/TEhUSBGef2I/AAAAAAAAAOU/kVfgQDKDzlk/s400/maxmenezes.jpg" alt="" id="BLOGGER_PHOTO_ID_5496736013715668834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Costumo ouvir (e fazer...) muitas críticas à nossa Universidade, em especial por conta da burocracia absurda que assola nosso trabalho docente e de pesquisa, no dia-a-dia.&lt;br /&gt;&lt;br /&gt;Mas dessa vez, devemos aplaudir de pé!! O motivo é a nomeação, feita pelo CONSU/UESC, do novo prédio da Pós-Graduação como PAVILHÃO PROF. MAX DE MENEZES.&lt;br /&gt;&lt;br /&gt;Não tive, infelizmente, muito contato com o Max no dia a dia. Mas nesse pouco contato já dava pra sentir aquela simpatia infinita, acompanhada daquele sorriso maroto piracicabano... O cara era, simplesmente, muito gente boa!!&lt;br /&gt;&lt;br /&gt;Vai ser bom entrar no Pavilhão Prof. Max de Menezes. Vai ser como estar perto do coração dele mais uma vez.&lt;br /&gt;&lt;br /&gt;Tchau Max! A gente se esbarra por aí um dia desses!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3337951728152637086?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3337951728152637086/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3337951728152637086' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3337951728152637086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3337951728152637086'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/07/esse-pessoal-de-piracicaba-nao-e-mole.html' title='&quot;Esse pessoal de Piracicaba, não é mole não!!&quot;'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/TEhUSBGef2I/AAAAAAAAAOU/kVfgQDKDzlk/s72-c/maxmenezes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2193037416558992676</id><published>2010-06-07T21:15:00.003-03:00</published><updated>2010-06-07T22:35:05.582-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Propaganda azul da morte...</title><content type='html'>.&lt;br /&gt;Sábado passado, num monitor de propaganda no aeroporto de Congonhas...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/TA2LntRcB4I/AAAAAAAAAOA/2RIbB4TA6Hg/s1600/Imagem0212.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/TA2LntRcB4I/AAAAAAAAAOA/2RIbB4TA6Hg/s400/Imagem0212.jpg" alt="" id="BLOGGER_PHOTO_ID_5480189835863656322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/TA2ciQtf4OI/AAAAAAAAAOI/Y7beF6Wrjqk/s1600/Imagem0213.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/TA2ciQtf4OI/AAAAAAAAAOI/Y7beF6Wrjqk/s400/Imagem0213.jpg" alt="" id="BLOGGER_PHOTO_ID_5480208433995047138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hehehehehehehehehehehehehe... Tenta Linux da próxima vez... :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2193037416558992676?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2193037416558992676/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2193037416558992676' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2193037416558992676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2193037416558992676'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/06/propaganda-azul-da-morte.html' title='Propaganda azul da morte...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/TA2LntRcB4I/AAAAAAAAAOA/2RIbB4TA6Hg/s72-c/Imagem0212.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3797924883696785568</id><published>2010-06-03T23:56:00.003-03:00</published><updated>2010-06-04T00:00:31.108-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Como inserir código-fonte em uma postagem de um blog</title><content type='html'>.&lt;br /&gt;No post anterior, precisei colocar vários códigos-fonte de exemplos, o que foi uma tarefa árdua. Por algum motivo que os experts em html devem saber (mas eu não...), o Blogger cismava de estragar minha formatação. Identação então, nem pensar... o bicho teimava em colocar tudo alinhado a esquerda! Achei que tinha resolvido isso, usando a dupla &lt;&gt; e &lt; / pre &gt;, e colocando um pontinho na primeira posição, pra ele respeitar meus espaços da identação...&lt;br /&gt;&lt;br /&gt;Tava indo tudo muito bem, até que tentei colocar um exemplo de um laço &lt;span style="font-weight: bold;"&gt;for&lt;/span&gt;... rapaiz, nem com reza braba!! O bicho simplesmente sumia com um pedaço do código! Alguma combinação de caracteres no &lt;span style="font-weight: bold;"&gt;for&lt;/span&gt; deve significar alguma coisa doida pra ele...&lt;br /&gt;&lt;br /&gt;Enfim, acho que encontrei a solução para o dilema: sites que formatam código fonte, gerando código html prontinho pra você colocar no post. São eles:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codeformatter.blogspot.com/2009/06/about-code-formatter.html"&gt;Source code formatter&lt;/a&gt;&lt;br /&gt;http://codeformatter.blogspot.com/2009/06/about-code-formatter.html&lt;br /&gt;&lt;br /&gt;&lt;a href="http://formatmysourcecode.blogspot.com"&gt;Format my source code&lt;/a&gt;&lt;br /&gt;http://formatmysourcecode.blogspot.com&lt;br /&gt;&lt;br /&gt;Em ambos, o funcionamento é o mesmo: você digita seu código-fonte numa caixa, aperta um botão, e ele gera o código html que formata seu código. Os sites geram também um preview, pra você conferir o resultado.&lt;br /&gt;&lt;br /&gt;A partir daí, é só copiar o código em html gerado, e levar para seu post. No caso do blogger, quando você estiver na tela de digitação do post, clique na aba "editar html", e cole o código gerado na posição correta.&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3797924883696785568?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3797924883696785568/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3797924883696785568' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3797924883696785568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3797924883696785568'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/06/como-inserir-codigo-fonte-em-uma.html' title='Como inserir código-fonte em uma postagem de um blog'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7291236131685886091</id><published>2010-05-31T12:45:00.028-03:00</published><updated>2010-05-31T14:48:36.907-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Programação de GUIs utilizando GTK - Parte 1</title><content type='html'>&lt;p&gt;.&lt;/p&gt;&lt;p&gt;Começo a partir de hoje uma série de posts para compartilhar minha experiência no aprendizado da biblioteca &lt;a href="http://www.gtk.org/"&gt;GTK&lt;/a&gt;, utilizada para desenvolvimento de software com interface gráfica para o usuário (GUI, Graphical User Interface).&lt;br /&gt;&lt;br /&gt;Quero ressaltar que não sou um grande conhecedor da biblioteca, pelo contrário, estou ainda em processo de aprendizado. Tenho apenas um &lt;a href="http://starfightercarlao.blogspot.com/2008/08/doutorado-geoprocessamento-e-computao.html"&gt;software completo&lt;/a&gt; desenvolvido com interface em GTK, que provavelmente serve muito mais como exemplo de como NÃO programar do que qualquer outra coisa ... :-) (apesar da ajuda inestimável do amigo &lt;a href="http://blogs.gnome.org/brunobol/"&gt;Bruno Boaventura&lt;/a&gt;!).&lt;br /&gt;&lt;br /&gt;O objetivo aqui é apenas compartilhar o conhecimento, mas mais que isso, motivar outras pessoas a ingressarem no mundo GTK, GNOME, e quem sabe um dia nos tornarmos desenvolvedores/colaboradores dessa que é a melhor interface gráfica do mundo!!! :-)  (usuários KDE, por favor, levem na brincadeira... :-)  )&lt;br /&gt;&lt;br /&gt;O livro que estou utilizando para esse estudo é o excelente "&lt;a href="http://apress.com/book/view/9781590597934"&gt;Foundations of GTK+ Development&lt;/a&gt;", de Andrew Krause (Apress). Recomendo fortemente sua aquisição para quem deseja programar com GTK seriamente. O livro é completo e objetivo. Para cada elemento da biblioteca, o autor apresenta um ou mais códigos-fonte de exemplo, mostrando suas características fundamentais. Para aqueles com poucos recursos, a Apress comercializa uma versão PDF (ebook), a um preço um pouco mais acessível do que a versão em papel, principalmente porque não é preciso pagar o frete para o envio da versão em papel, que as vezes custa mais que o próprio livro... Um arquivo com todos os códigos-fonte dos exemplos do livro pode ser baixado gratuitamente no site oficial do livro, &lt;a href="http://www.gtkbook.com/home.php"&gt;neste link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Conto com a ajuda e a colaboração dos amigos que estiverem lendo isso, caso percebam algum erro no conteúdo apresentado, ou mesmo para proporem alguma adição que explique melhor algum ponto.&lt;br /&gt;&lt;br /&gt;Ah, mais uma coisinha: o requisito básico para se acompanhar estes posts (e, de certa forma, pra estudar GTK) é um forte conhecimento da linguagem C básica, incluindo PONTEIROS.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;***************&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pra começar: GTK+ é uma biblioteca escrita na linguagem C, sob o paradigma da orientação a objetos.&lt;br /&gt;&lt;br /&gt;Ué, (dirá você), mas a linguagem C NÃO é orientada a objetos!! Como pode?&lt;br /&gt;&lt;br /&gt;Esse é um erro comum de muita gente boa. Uma coisa é um paradigma de programação, ou seja, uma forma de organizar as idéias para criar um programa de computador. Outra coisa são as características e os recursos de uma linguagem de programação específica. Uma coisa não está completamente amarrada a outra. O que acontece é que existem linguagens de programação MAIS ADEQUADAS para utilização com um certo paradigma. Por exemplo, as linguagens C++ e Java foram criadas com recursos que tornam a programação no paradigma orientado a objetos mais confortável. Mas isso não significa que não se possa programar "orientado a objetos" com a linguagem C. O que vai acontecer é que teremos um "trabalhinho adicional", já que C não vem preparada para orientação a objetos. Por sorte, este trabalhinho já está pronto, na figura da biblioteca GObject, utilizada pela biblioteca GTK.&lt;br /&gt;&lt;br /&gt;Vamos neste post, portanto, ver algumas características bem básicas do paradigma de orientação a objetos, fundamentais para que possamos entender como programar utilizando GTK.&lt;br /&gt;&lt;br /&gt;Mas atenção! O que vai ser apresentado aqui é um resumo básico, introdutório, e principalmente, incompleto! Portanto, se você é aluno de computação, envolvido com as questões de orientação a objetos, não deixe de ler alguma referência oficial sobre o assunto. E depois volte aqui pra me ajudar a complementar o texto... :-)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;DIFERENÇAS FUNDAMENTAIS ENTRE OS PARADIGMAS "PROCEDURAL" E "ORIENTADO A OBJETOS"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No paradigma procedural, temos duas características fundamentais:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;código e dados bem separados;&lt;/li&gt;&lt;li&gt;o código atua sobre os dados;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Por exemplo, um programa que faça o gerencimento de uma conta bancária, no paradigma procedural, poderia ser representado pela seguinte figura:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ5cEkIHI/AAAAAAAAAMg/2kJkJ-wT48o/s1600/fig01.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 266px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ5cEkIHI/AAAAAAAAAMg/2kJkJ-wT48o/s400/fig01.png" alt="" id="BLOGGER_PHOTO_ID_5477461152623763570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para, por exemplo, verificar o saldo da conta de "beltrano", o código (função) "saldo" atua sobre os dados da conta de beltrano:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ5lYLzDI/AAAAAAAAAMo/w8JwYWiBXJI/s1600/fig02.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 213px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ5lYLzDI/AAAAAAAAAMo/w8JwYWiBXJI/s400/fig02.png" alt="" id="BLOGGER_PHOTO_ID_5477461155121974322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;No paradigma orientado a objetos, código e dados são reunidos em entidades chamadas "objetos". Um objeto possui características (dados, atributos) e também um comportamento (o objeto "faz" alguma coisa, ele responde a solicitações, é o seu código).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/TAPZ55D839I/AAAAAAAAAMw/gk3OeE-FxQA/s1600/fig03.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 260px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/TAPZ55D839I/AAAAAAAAAMw/gk3OeE-FxQA/s400/fig03.png" alt="" id="BLOGGER_PHOTO_ID_5477461160405819346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Repetindo o exemplo acima, para verificar o saldo da conta de "beltrano", agora nós enviamos uma "mensagem" para o objeto "conta de beltrano", para que esse objeto nos diga qual é o saldo da conta. Ou seja, este objeto tem um dado (o valor do saldo), e um comportamento (o objeto sabe responder quando lhe perguntamos seu saldo). Uma analogia: o objeto "ser humano" tem um dado (seu nome), e um comportamento (sabe responder quando lhe perguntam o nome). Se eu mandar, para um objeto "ser humano" a mensagem "qual é o seu nome?", o objeto ser humano devolve o valor armazenado na variável NOME...  :-)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ6kwHQFI/AAAAAAAAAM4/Y6tsqHU3QII/s1600/fig04.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 298px; height: 262px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ6kwHQFI/AAAAAAAAAM4/Y6tsqHU3QII/s400/fig04.png" alt="" id="BLOGGER_PHOTO_ID_5477461172133773394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Resumindo: o objeto é responsável, ele mesmo, por verificar (e exibir) o saldo da conta.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;CLASSE: MODELO GENÉRICO DE UM OBJETO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Os objetos são criados a partir de um "modelo", que diz como o objeto será (quais são seus atributos, dados, e qual é seu comportamento, código). Por exemplo, podemos definir a classe "ser humano", e a partir desse modelo, criar efetivamente os objetos "Ana", "Bianca", "Claudia", etc...&lt;br /&gt;&lt;br /&gt;Eu comparo, mal-e-porcamente, uma classe a uma struct em C. Com a struct, temos dois momentos: o de definição da struct, e o de efetivamente criar uma variável a partir da struct. Assim, por exemplo,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;struct AGENDA&lt;br /&gt;{&lt;br /&gt;.   char NOME[30];&lt;br /&gt;.   char EMAIL[20];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;... na verdade cria apenas um modelo de como será a struct AGENDA. Mas não há efetivamente nada criado na memória para guardar NOME e/ou EMAIL. Com a seguinte instrução,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;struct AGENDA MinhaAgenda;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... aí sim, criamos na memória a variável "MinhaAgenda", e dentro dela temos NOME e EMAIL.&lt;br /&gt;&lt;br /&gt;Uma classe é, portanto, uma "struct metida a besta", que além de dados, tem também código. :-)&lt;br /&gt;&lt;br /&gt;Vamos ver um exemplo do que poderia ser uma classe "conta bancária", e alguns objetos gerados a partir dela:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/TAPZ6zk8wuI/AAAAAAAAANA/1w8zzERQS6E/s1600/fig05.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 319px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/TAPZ6zk8wuI/AAAAAAAAANA/1w8zzERQS6E/s400/fig05.png" alt="" id="BLOGGER_PHOTO_ID_5477461176113480418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Na figura, "instanciar" é simplesmente o processo de gerar um objeto, a partir de uma classe.&lt;br /&gt;&lt;br /&gt;Uma classe, portanto, define todas as características comuns a um tipo de objeto.&lt;br /&gt;&lt;br /&gt;Outro conceito pertencente ao paradigma de orientação a objetos é o de ENCAPSULAMENTO. Como o nome diz, traz a idéia de "cápsula", ou seja, a idéia de que não podemos ver o que tem dentro da cápsula. Outra analogia (bem simplória), numa cápsula de remédio, não sabemos o que tem dentro da cápsula (as várias substâncias e suas respectivas quantidades). Também não podemos (ou pelo menos, não devemos... :-)  ) abrir a cápsula e manipular diretamente algum ingrediente específico.&lt;br /&gt;&lt;br /&gt;Da mesma forma, um objeto não pode (ou não deve...) manipular diretamente os dados internos de outro objeto. Assim, no exemplo visto, só quem pode manipular o saldo (dado) que existe no objeto "conta de fulano" é o código que também existe dentro do mesmo objeto... não faria sentido o código que está dentro do objeto "conta de beltrano" manipular a variável SALDO existente dentro do objeto "conta de fulano"!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;ALGUNS TERMOS DA O.O&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Atributos&lt;/span&gt;: dados armazenados dentro dos objetos&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Métodos&lt;/span&gt;: as funções (ou seja, o código) internas aos objetos, que manipulam os atributos&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Envio de mensagem&lt;/span&gt;: dizemos que um objeto "envia uma mensagem" a outro objeto, para que este último faça alguma coisa. Por exemplo, podemos ter o objeto "caixa eletrônico da rua 5" enviando a mensagem "mostre o saldo" para o objeto "conta de fulano". O objeto "conta de fulano" então realiza esta ação, e devolve o valor para o objeto "caixa eletrônico", que vai mostrar na tela, imprimir, ou o que quer que seja.&lt;br /&gt;&lt;br /&gt;Na prática, é uma chamada de função, ou melhor, a execução de um método presente em um objeto.&lt;br /&gt;&lt;br /&gt;Em um código-fonte fictício, isso seria:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;objeto "caixa eletrônico"&lt;br /&gt;{&lt;br /&gt;.   ...&lt;br /&gt;.   conta_de_fulano.verificar_saldo();&lt;br /&gt;.   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Ou seja, estamos chamando a função (método) "verificar_saldo()", que existe dentro do objeto "conta_de_fulano".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Interface de um objeto&lt;/span&gt;: o conjunto de métodos (e seus parâmetros) que existem em um objeto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;HERANÇA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Essa é uma das características fundamentais da orientação a objetos, cujo conhecimento é muito importante para programação utilizando a biblioteca GTK.&lt;br /&gt;&lt;br /&gt;A herança é um mecanismo que permite basear uma nova classe na definição de uma classe previamente existente. Ou seja, não precisamos ficar "reinventando a roda" a todo momento. Pega-se algo que já está pronto, e adicionamos outros recursos. Usando herança, sua nova classe herda todos os atributos e métodos presentes na classe previamente existente.&lt;br /&gt;&lt;br /&gt;Como exemplo, vamos pensar em duas classes: "homem" e "mulher". Serão classes diferentes, já que apresentarão diferenças de comportamento entre si (por exemplo, os objetos "homem" terão o método "entender a lei do impedimento"... os objetos "mulher" terão o método "reconhecer a cor fúcsia"... :-)  ). Só que, além de diferenças, terão também características em comum, como por exemplo, ambos os objetos terão um "nome" e uma "idade", e ambos os objetos saberão "dizer seu nome" e "dizer sua idade". Desta forma, podemos criar uma classe "ser humano", com essas características básicas, e A PARTIR DELA, as duas classes "homem" e "mulher", com as características específicas de cada uma.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/TAPdSzcpqUI/AAAAAAAAANg/yZXEOR5jF8M/s1600/fig06.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 390px; height: 367px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/TAPdSzcpqUI/AAAAAAAAANg/yZXEOR5jF8M/s400/fig06.png" alt="" id="BLOGGER_PHOTO_ID_5477464886930417986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Como os objetos "filhos" herdam todas as características do objeto "pai", independentemente do tipo de objeto (ser humano, homem, mulher), a todos eles poderemos mandar a mensagem "dizer nome", e todos responderão corretamente.&lt;br /&gt;&lt;br /&gt;Isso nos leva a outra característica bastante interessante da orientação a objetos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;POLIMORFISMO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Significa "muitas formas" (dããã...). Permite que um único nome de classe ou nome de método represente um código diferente, selecionado por um mecanismo automático. Trocando em miúdos: podemos ter códigos diferentes (que fazem coisas diferentes), mas com o mesmo nome de método, em objetos (classes) diferentes. Na hora da execução, o código correto é selecionado pra execução, a partir do tipo do objeto para o qual se está enviando a mensagem.&lt;br /&gt;&lt;br /&gt;Vamos tentar um exemplo "prático" pra deixar isso mais claro.&lt;br /&gt;&lt;br /&gt;Imagine o seguinte "código-fonte", fictício, numa linguagem "parecida" com C. Neste código, vamos "definir" a classe "Pessoa", e classes filhas dela, "Pessimista", "Otimista", "Timido" e "Extrovertido". Em todas as classes, vamos definir o mesmo método, "fale()", só que com código diferente em cada uma delas.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;classe Pessoa&lt;br /&gt;{&lt;br /&gt;.   void fale()&lt;br /&gt;.   {&lt;br /&gt;.       printf("Eu sou uma pessoa comum\n");&lt;br /&gt;.   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;classe Pessimista, filha de Pessoa&lt;br /&gt;{&lt;br /&gt;.   void fale()&lt;br /&gt;.   {&lt;br /&gt;.       printf("O copo está meio vazio...\n");&lt;br /&gt;.   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;classe Otimista, filha de Pessoa&lt;br /&gt;{&lt;br /&gt;.   void fale()&lt;br /&gt;.   {&lt;br /&gt;.       printf("O copo está meio cheio!\n");&lt;br /&gt;.   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;classe Timido, filha de Pessoa&lt;br /&gt;{&lt;br /&gt;.   void fale()&lt;br /&gt;.   {&lt;br /&gt;.       printf("oi...\n");&lt;br /&gt;.   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;classe Extrovertido, filha de Pessoa&lt;br /&gt;{&lt;br /&gt;.   void fale()&lt;br /&gt;.   {&lt;br /&gt;.       printf("Olá! blabla..! voce sabia que ... bla bla!\n");&lt;br /&gt;.   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/TAPdvwRLyAI/AAAAAAAAANw/-5a31FxpZzs/s1600/fig07.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 141px;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/TAPdvwRLyAI/AAAAAAAAANw/-5a31FxpZzs/s400/fig07.png" alt="" id="BLOGGER_PHOTO_ID_5477465384293222402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Como dissemos anteriormente, uma classe é apenas um modelo. Vamos agora criar objetos, a partir das classes definidas acima (obs: qualquer semelhança com a forma de criar variáveis em C, "tipo nome_variável;" não terá sido mera coincidência... :-)  )&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Pessimista   Paulo;    /* Paulo é um objeto do tipo "Pessimista" */&lt;br /&gt;Otimista     Otavio;&lt;br /&gt;Timido       Tiago;&lt;br /&gt;Extrovertido Eduardo;&lt;/pre&gt;&lt;br /&gt;Vamos agora criar um vetor, para armazenar objetos do tipo "Pessoa":&lt;br /&gt;&lt;pre&gt;Pessoa Galera[4];&lt;/pre&gt;&lt;br /&gt;... ou seja ...&lt;br /&gt;&lt;br /&gt;Galera[0] vai armazenar um objeto do tipo Pessoa;&lt;br /&gt;Galera[1] vai armazenar um objeto do tipo Pessoa;&lt;br /&gt;Galera[2] idem...&lt;br /&gt;Galera[3] idem...&lt;br /&gt;&lt;br /&gt;E para fechar o exemplo, vamos fazer:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Galera[0] = Paulo;&lt;br /&gt;Galera[1] = Otavio;&lt;br /&gt;Galera[2] = Tiago;&lt;br /&gt;Galera[3] = Eduardo;&lt;/pre&gt;&lt;br /&gt;Oras... dirá você... mas se você criou um vetor para armazenar "Pessoas", como pode armazenar outra coisa que não "Pessoas" ? Por exemplo, Galera[0] foi criado para armazenar um objeto do tipo "Pessoa", mas estamos armazenando um objeto do tipo "Pessimista" (Paulo)!!&lt;br /&gt;&lt;br /&gt;Isto é possível porque a classe "Pessimista" é derivada da classe "Pessoa", ou seja, de certa forma, um "Pessimista" &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; uma "Pessoa"! O mesmo acontece com as variáveis armazenadas nos outros elementos do vetor.&lt;br /&gt;&lt;br /&gt;GTK faz uso extensivo deste recurso, por exemplo, sejam duas classes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GtkWidget: objeto gráfico básico, genérico;&lt;/li&gt;&lt;li&gt;GtkWindow: uma janela (com título, botões de max, min, fechar...)&lt;/li&gt;&lt;/ul&gt;A "widget hierarchy" de GtkWindow é a seguinte:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPdwKtN4DI/AAAAAAAAAN4/hXVtfWIei-Y/s1600/fig08.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 367px; height: 229px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/TAPdwKtN4DI/AAAAAAAAAN4/hXVtfWIei-Y/s400/fig08.png" alt="" id="BLOGGER_PHOTO_ID_5477465391390122034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Independente das "classes intermediárias", podemos dizer que um GtkWindow &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; um GtkWidget.&lt;br /&gt;&lt;br /&gt;Completando o exemplo... como fazemos para enviar a mensagem "fale()" para cada objeto, já que são objetos diferentes, e cada um deveria falar uma coisa diferente?&lt;br /&gt;&lt;br /&gt;Bem, sem o recurso da herança, teriamos que ter um monte de IF's aninhados, testando o tipo de cada objeto, e aí chamando a função correta: "se for pessimista, fala isso... senão, se for otimista, fala aquilo... senão... ".&lt;br /&gt;&lt;br /&gt;Com o recurso da herança, e do polimorfismo, essa tarefa fica MUITO mais fácil:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px dashed rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; for ( CONT=0 ; CONT&amp;lt;4 ; CONT++ )&lt;br /&gt;{&lt;br /&gt;Galera[CONT].fale();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Passo-a-passo:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;inicializa CONT com 0;&lt;/li&gt;&lt;li&gt;CONT é menor que 4? SIM! entra no laço.&lt;/li&gt;&lt;li&gt;chama o método "fale()" na variável Galera[0]&lt;/li&gt;&lt;li&gt;agora é que está o "pulo do gato": Galera[0] é do tipo Pessoa, mas nela está armazenado um objeto do tipo "Pessimista", logo, AUTOMATICAMENTE, vai ser chamado o método "fale()" da classe Pessimista, e não o da classe Pessoa!!!&lt;/li&gt;&lt;li&gt;fim do laço: CONT fica igual a 1, ainda menor que 4, entra no laço novamente&lt;/li&gt;&lt;li&gt;chama o método "fale()" na variável Galera[1]&lt;/li&gt;&lt;li&gt;o objeto armazenado em Galera[1] é "Otavio", do tipo "Otimista", então automaticamente vai ser chamada a função "fale()" da classe "Otimista"&lt;/li&gt;&lt;li&gt;fim do laço: CONT fica igual a 2, entra no laço novamente&lt;/li&gt;&lt;li&gt;e por aí vai...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Assim, a saída que teremos, será:&lt;br /&gt;&lt;br /&gt;O copo está meio vazio&lt;br /&gt;O copo está meio cheio&lt;br /&gt;oi...&lt;br /&gt;Olá !! bla bla bla !! ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mais um exemplinho... seja uma função qualquer, que receba como PARÂMETRO um objeto do tipo "Pessoa", e retorne um inteiro com a idade dessa pessoa. A função seria escrita assim (na nossa "pseudo" linguagem C... ):&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px dashed rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; int Diz_Idade ( Pessoa FulanoDeTal );&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;A seguinte chamada dessa função é válida:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;Diz_Idade( Paulo );&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Deixando claro: a função espera receber um parâmetro do tipo "Pessoa". Estamos passando o objeto "Paulo", que é do tipo "Pessimista". Nenhum problema aí, já que "Pessimista" &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; uma "Pessoa" (pela definição de herança!). As chamadas abaixo também são válidas:&lt;br /&gt;&lt;br /&gt;Diz_Idade( Otavio );&lt;br /&gt;Diz_Idade( Tiago );&lt;br /&gt;Diz_Idade( Eduardo );&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pra fechar esse post-monstro, um exemplinho com GTK, pra ir tomando o gosto...&lt;br /&gt;MAS ATENÇÃO!! O exemplo está &lt;span style="font-weight: bold;"&gt;INCOMPLETO&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;SIMPLIFICADO&lt;/span&gt;!!&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px dashed rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt;1:  int main( ... )&lt;br /&gt;2:  {&lt;br /&gt;3:    GtkWidget *window;&lt;br /&gt;4: &lt;br /&gt;5:    ...&lt;br /&gt;6: &lt;br /&gt;7:    window = gtk_window_new ( ... );&lt;br /&gt;8: &lt;br /&gt;9:    gtk_window_set_title ( window, "Hello World!!" );&lt;br /&gt;10: &lt;br /&gt;11:    ...&lt;br /&gt;12:  }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Vamos ver passo a passo?&lt;br /&gt;&lt;br /&gt;linha 3: estamos criando uma variável de nome "window", que é do tipo "ponteiro" para o tipo de dados &lt;span style="font-weight: bold;"&gt;GtkWidget&lt;/span&gt; (como já vimos, o tipo de dado básico de todos os objetos em GTK);&lt;br /&gt;&lt;br /&gt;linha 7: utilizamos a função "gtk_window_new" que cria toda a definição necessária para uma janela gráfica na memória do computador. Esta função retorna o endereço inicial desta definição (analogia: comando malloc, cria uma área na memória, e devolve o endereço inicial da área). Armazenamos este endereço na variável "window".&lt;br /&gt;&lt;br /&gt;linha 9: utilizamos a função "gtk_window_set_title" para definir o texto que será exibido como título da janela. Passamos como parâmetros, obviamente, a variável que tem o endereço da janela cujo título queremos definir (neste exemplo, variável "window"), e o texto que queremos como título (a string "Hello World!").&lt;br /&gt;&lt;br /&gt;Aqui podemos ver a herança em ação: a função &lt;span style="font-weight: bold;"&gt;gtk_window_set_title&lt;/span&gt; espera receber de parâmetro um objeto do tipo &lt;span style="font-weight: bold;"&gt;GtkWindow&lt;/span&gt;. Mas, o que passamos foi a variável "window", que é um &lt;span style="font-weight: bold;"&gt;GtkWidget&lt;/span&gt;. Ora, como já vimos no exemplo anterior, e também na hierarquia da classe &lt;span style="font-weight: bold;"&gt;GtkWindow&lt;/span&gt;, uma &lt;span style="font-weight: bold;"&gt;GtkWindow&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;É&lt;/span&gt; um &lt;span style="font-weight: bold;"&gt;GtkWidget&lt;/span&gt;. Logo podemos passar a variável "window" para esta função sem problemas.&lt;br /&gt;&lt;br /&gt;Repetindo: este exemplo está SIMPLIFICADO e INCOMPLETO. Foi só pra ilustrar o que vimos até aqui.&lt;br /&gt;&lt;br /&gt;Chega por hoje!&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7291236131685886091?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7291236131685886091/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7291236131685886091' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7291236131685886091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7291236131685886091'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/05/programacao-de-guis-utilizando-gtk.html' title='Programação de GUIs utilizando GTK - Parte 1'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_YcnKHahXCEc/TAPZ5cEkIHI/AAAAAAAAAMg/2kJkJ-wT48o/s72-c/fig01.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-5546423319779346124</id><published>2010-05-21T22:29:00.002-03:00</published><updated>2010-05-21T22:38:18.164-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>(mais) Uma conversa entre Steve Jobs e Bill Gates...</title><content type='html'>.&lt;br /&gt;Tá rolando essas figuras pela net. Não resisti... :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/S_c0AEQ9olI/AAAAAAAAAMI/A0bV1_VmRGc/s1600/billjobs1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 262px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/S_c0AEQ9olI/AAAAAAAAAMI/A0bV1_VmRGc/s400/billjobs1.png" alt="" id="BLOGGER_PHOTO_ID_5473901047841661522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/S_c0AuWFKeI/AAAAAAAAAMQ/8Oavk5n8JGQ/s1600/billjobs2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 262px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/S_c0AuWFKeI/AAAAAAAAAMQ/8Oavk5n8JGQ/s400/billjobs2.png" alt="" id="BLOGGER_PHOTO_ID_5473901059137415650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/S_c0AyCAA2I/AAAAAAAAAMY/lIaFiwa0gQ0/s1600/billjobsfinal.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 279px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/S_c0AyCAA2I/AAAAAAAAAMY/lIaFiwa0gQ0/s400/billjobsfinal.jpg" alt="" id="BLOGGER_PHOTO_ID_5473901060126933858" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-5546423319779346124?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/5546423319779346124/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=5546423319779346124' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5546423319779346124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5546423319779346124'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2010/05/mais-uma-conversa-entre-steve-jobs-e.html' title='(mais) Uma conversa entre Steve Jobs e Bill Gates...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_YcnKHahXCEc/S_c0AEQ9olI/AAAAAAAAAMI/A0bV1_VmRGc/s72-c/billjobs1.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3600209646611274367</id><published>2009-08-05T15:36:00.006-03:00</published><updated>2010-11-13T16:01:03.201-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='senra'/><title type='text'>Textos do Prof. Nelson de Castro Senra</title><content type='html'>.&lt;br /&gt;Reúno neste post alguns textos do Prof. Nelson de Castro Senra.&lt;br /&gt;&lt;br /&gt;O Prof. Nelson é Doutor em Ciência da Informação pela UFRJ/Eco (Escola de Comunicação) e CNPq/Ibict (Instituto Brasileiro de Informação em Ciência e Tecnologia), com a tese "A Coordenação da Estatística Nacional. O equilíbrio entre o desejável e o possível". É Mestre em Economia pela FGV/EPGE (Escola de Pós-Graduação em Economia, sob a direção do Profº Mário Henrique Simonsen), com a dissertação "O fenômeno sazonal na construção de índices de preços ao consumidor", e economista pela Universidade Cândido Mendes, Faculdade de Ciências Políticas e Econômicas do Rio de Janeiro.&lt;br /&gt;&lt;br /&gt;Fui aluno do Prof. Nelson nos anos de 1999 e 2000, quando participei do mestrado em Estudos Populacionais e Pesquisas Sociais (linha de Produção e Análise da Informação Geográfica) da Escola Nacional de Ciências Estatísticas (ENCE/IBGE, Rio de Janeiro). Das disciplinas que tive a honra e o prazer de cursar com o Prof. Nelson, destaco a de "Metodologia da Pesquisa Social", onde através de um conteúdo bastante diversificado (aulas expositivas, debates, filmes, e pequenos textos para reflexão) pude ter meu primeiro contato com essa forma específica de ver e (tentar) entender o mundo, chamada "ciência".&lt;br /&gt;&lt;br /&gt;Torno público aqui o agradecimento que consta de minha dissertação de mestrado:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Aos professores do curso de Mestrado da ENCE, pela dedicação e orientação, e em especial ao professor Nelson Senra, quem primeiro me ensinou o que é verdadeiramente “fazer ciência”, de uma forma que é impossível esquecer.&lt;/blockquote&gt;&lt;br /&gt;Seguem os links para os textos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1999&lt;/span&gt;&lt;br /&gt;&lt;a href="http://carlao2005.hostmach.com.br/senra/cinfopolitica.pdf"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3OGE3ODc2MjYtY2U0Zi00N2FjLWI4ZmItYjYzOWY4Zjg3MDA3&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Informação Estatística: política, regulação, coordenação.&lt;/a&gt;&lt;br /&gt;Ciência da Informação, Brasília, vol. 28, n. 2, 1999.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZWQzMWI5NWMtZTBkZS00ZTgyLWJjYWEtMjYzZTJkZjA5OWZi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Garantia de sigilo, a deontologia do Estaticista: sua conduta ético-moral.&lt;/a&gt;&lt;br /&gt;Rio de Janeiro, IBGE, texto para discussão, maio 1999. 8 p.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3NjRmNTNiYzItMmZkOC00OGQ3LWEwYjctZjA0NDczZTM4ZDQ3&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Política de Informação (Quantitativa): concepção, formulação, aplicação.&lt;/a&gt;&lt;br /&gt;Rio de Janeiro, IBGE, monografia para discussão, abril 1999. 54 p.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1998&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3OGMwNzlmY2UtMDhmZS00MjRiLTg4MWUtOGZhMWMwZmJiNTI1&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;A coordenação, a argumentação e a comunicação das estatísticas, vértices de um mesmo triângulo.&lt;/a&gt;&lt;br /&gt;São Paulo em Perspectiva, São Paulo, v. 12, n. 4, p. 92-98, out./dez. 98.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3MzBhOTI4NjEtMzk1Yi00ODg3LThlMjMtMzA5YjVlMmU0ZTNi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Os sistemas de informações estatísticas no limiar do terceiro milênio: o imperativo da coordenação. (O caso brasileiro).&lt;/a&gt;&lt;br /&gt;2ª versão. CNPD - Comissão Nacional de População e Desenvolvimento, jan./fev. 98. 48 p.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ODk3MWMzZTgtNzdjNy00NDg1LTg2ZDMtNGVhODZiZWRjOTE2&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;As Sociedades Científicas e a Informação Estatística. O SBPC/GT-Informação, (des)encontro marcado entre usuários e produtores?&lt;/a&gt;&lt;br /&gt;Rev. ANPEC, Brasília, n. 4, p. 199-211, fev. 98.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1997&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3NWU4ZTc5NmEtOWZjMC00NzlhLTg1YjYtN2Q3YzY1YTk5MzE0&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Um olhar sobre os anuários estatísticos.&lt;/a&gt;&lt;br /&gt;Ciência da Informação, Brasília, v. 26, n. 1, p. 7-11, jan./abr. 97.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1996&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3MjVmNWQ3YmItZGNkNC00YWY2LWE2YjktNTA5NTg0NWIyZDAy&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Governamentalidade, a invenção política das estatísticas.&lt;/a&gt;&lt;br /&gt;Informare, Rio de Janeiro, v. 2, n. 1, p. 88-95, jan./jun. 96.&lt;br /&gt;[Apresentado no I Encontro de Pesquisa da Pós-Graduação em Ciência da Informação, CNPq/Ibict e UFRJ/Eco, Rio de Janeiro, 9 ago. 95].&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3N2I3MDg3ZTctNDE5Ny00MzVlLTgxNGEtNWNlNzM4MWJjNzAw&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Cálculo econômico e a arte de governar ou A relação entre a contabilidade e a estatística.&lt;/a&gt;&lt;br /&gt;Informare, Rio de Janeiro, v. 2, n. 2, p. 85-91, jan./jun. 96.&lt;br /&gt;[Apresentado no Colóquio Organização do conhecimento e representação da informação: enfoques e perspectivas, CNPq/Ibict e UFRJ/ Eco, Rio de Janeiro, 27 set. 96]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1994&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3YTdjODkyZDMtZjAwNy00OWRlLWIwOTQtOWJkNmU0NThlMWQ0&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Por uma disseminação democrática de informações.&lt;/a&gt;&lt;br /&gt;São Paulo em Perspectiva, São Paulo, v. 8, n. 4, p. 40-45,  out./dez. 94.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1993&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3NzEyMzBmOWUtMmUwZC00ZWE3LTkwNzYtZTg2NDg1ZWE3N2Fi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;A Informação e a Formação do Mercosul.&lt;/a&gt;&lt;br /&gt;Network. Cândido Mendes, v. 3, n. 2, abr./jun. 93.&lt;br /&gt;&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3600209646611274367?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3600209646611274367/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3600209646611274367' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3600209646611274367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3600209646611274367'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/08/textos-do-prof-nelson-de-castro-senra.html' title='Textos do Prof. Nelson de Castro Senra'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-1921837812997789901</id><published>2009-08-05T12:05:00.003-03:00</published><updated>2009-08-05T12:14:35.975-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Earth Song, Michael Jackson</title><content type='html'>.&lt;br /&gt;Estava ouvindo esta música (que gosto muito) quando me veio a idéia deste post. A princípio pensei que seria um daqueles posts "off topic", nada a ver com computação. Só que fui me dando conta que tem TUDO a ver com computação!&lt;br /&gt;&lt;br /&gt;Estou falando para os "nerds" como eu: As vezes, no nosso afã de tecnologia e inovação, esquecemos uma coisinha simples e básica: tudo que usamos de tecnologia, memórias maiores, processadores mais rápidos, novas telas maiores e brilhantes, tudo isto tem um impacto no meio ambiente. Minha esposa usa uma frase bastante interessante, e concordo com ela: Quando ela vê um exemplo entre tantas "inovações tecnológicas" que se inventam diariamente (como&lt;a href="http://starfightercarlao.blogspot.com/2008/04/teclado-por-apenas-1500-dlares.html"&gt; esta aqui&lt;/a&gt;, por exemplo), ela diz que "o planeta não vai aguentar!".&lt;br /&gt;&lt;br /&gt;Estive no FISL mês passado, e assisti uma palestra sobre lixo tecnológico. O palestrante falou algo que me deixou estarrecido: para produzir &lt;span style="font-weight: bold;"&gt;UMA&lt;/span&gt; simples plaquinha de memória de 30 pinos (sim, aquela velhona, de 32Mb, que ninguém mais usa), que pesa no máximo 2 gramas, foram gastos 1500 gramas de material retirado do meio ambiente (matéria-prima, energia, etc) !&lt;br /&gt;&lt;br /&gt;Nós, do mundo do Software Livre, podemos fazer a diferença nesta história, contribuindo para divulgar a idéia de reaproveitamento de máquinas antigas, seja como terminais gráficos "burros", seja com distribuições GNU/Linux (ou *BSD, ou xyz, ou ...) leves.&lt;br /&gt;&lt;br /&gt;Inovação tecnológica sim, mas com responsabilidade. Cuidemos melhor de nossa Deusa-Mãe GAIA.&lt;br /&gt;&lt;br /&gt;Mas afinal de contas, de que música estou falando? Desta aqui embaixo ("Earth Song", Michael Jackson). Assista, e se rolar uma lágrima (como acontece comigo), não se envergonhe. Torça comigo para que o final poético apresentado no clipe seja possível algum dia.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4FZcAzZOyOg&amp;hl=pt-br&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4FZcAzZOyOg&amp;hl=pt-br&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-1921837812997789901?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/1921837812997789901/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=1921837812997789901' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1921837812997789901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1921837812997789901'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/08/earth-song-michael-jackson.html' title='Earth Song, Michael Jackson'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7997991090693396856</id><published>2009-07-29T09:56:00.004-03:00</published><updated>2009-07-29T19:33:52.428-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Cylons: aqui e agora!</title><content type='html'>.&lt;br /&gt;Deu no Jornal da Ciência (JC e-mail) 3814, de 28 de Julho de 2009, a partir de matéria publicada em "O Globo".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;19. Pesadelo futurista&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;Especialistas em inteligência artificial discutem &lt;span style="font-weight: bold;"&gt;limitar&lt;/span&gt; tecnologia&lt;br /&gt;&lt;br /&gt;Um robô capaz de abrir portas e encontrar tomadas por conta própria para se recarregar. Vírus de computador que ninguém consegue deter. Pequenas aeronaves não tripuladas que, ainda que operadas por controle remoto, chegam muito perto de uma máquina com autonomia para matar.&lt;br /&gt;&lt;br /&gt;Impressionados e alarmados pelos avanços na inteligência artificial, um grupo de cientistas está debatendo se deve haver limites para avanços tecnológicos que podem levar a uma perda do controle humano sobre sistemas computacionais cada vez mais usados pela sociedade, seja em guerras ou num simples bate-papo ao telefone.&lt;br /&gt;&lt;br /&gt;A preocupação é que avanços ainda maiores possam criar graves problemas sociais com consequências perigosas. Como exemplos, os cientistas citam várias tecnologias — tão diversas quanto sistemas médicos experimentais que interagem com pacientes para simular empatia e vírus de computador que desafiam as técnicas de extermínio e já teriam atingido o estágio “inseto” da inteligência mecânica.&lt;br /&gt;&lt;br /&gt;Embora os cientistas concordem que ainda há um longo caminho a percorrer até Hal — o computador que assume o comando da nave em “2001: uma odisseia no espaço” —, eles acreditam que é legítima a preocupação de que o progresso tecnológico possa transformar o mercado de trabalho ao acabar com um grande número de empregos, bem como forçar seres humanos a viverem com um crescente número de máquinas.&lt;br /&gt;&lt;br /&gt;Robôs capazes de matar já existem&lt;br /&gt;&lt;br /&gt;Reunidos numa conferência em Asilomar, na Califórnia, cientistas especializados em computadores, inteligência artificial e robôs descartam a possibilidade de uma superinteligência altamente centralizada ou mesmo de que algum tipo de inteligência possa emergir espontaneamente na internet. Mas eles concordam que robôs capazes de matar de forma autômata já existem.&lt;br /&gt;&lt;br /&gt;Os especialistas centraram atenção especial na ameaça de que criminosos poderiam explorar sistemas de inteligência artificial com objetivos espúrios. O que um criminoso poderia fazer com um sistema capaz de criar vozes similares às humanas? O que aconteceria se a tecnologia de inteligência artificial for usada para drenar informações pessoais de “smart” fones? Os pesquisadores também discutiram possíveis ameaças ao mercado de trabalho, representadas por carros que dispensam motoristas e serviços de robô em casa.&lt;br /&gt;&lt;br /&gt;A conferência foi organizada pela Associação para o Avanço da Inteligência Artificial, que, ao escolher Asilomar como lugar das discussões, evocou, propositalmente um evento histórico da ciência. Em 1975, os maiores biólogos do mundo se reuniram em Asilomar para discutir a possibilidade de transformar formas de vida por meio da troca de material genético entre organismos e estabelecer parâmetros para tais experiências. Era o início da engenharia genética.&lt;br /&gt;&lt;br /&gt;O encontro sobre o futuro da inteligência artificial foi organizado por Eric Horvitz, um pesquisador da Microsoft que, atualmente, é presidente da associação. Para ele, os cientistas computacionais devem estar aptos a debater noções de máquinas superinteligentes e de sistemas de inteligência artificial que fogem ao controle.&lt;br /&gt;&lt;br /&gt;A ideia de uma “explosão de inteligência”, na qual máquinas projetariam outras máquinas ainda mais inteligentes foi proposta pelo matemático I.J. Good em 1965. Anos depois, em palestras e romances de ficção científica, o cientista Vernon Vinge popularizou a noção de que os seres humanos seriam capazes de criar uma máquina mais inteligente do que o homem, causando transformações tão rápidas que levariam ao “fim da era humana”.&lt;br /&gt;&lt;br /&gt;A ideia, explorada no cinema e na literatura, é vista como plausível e inquietante, por cientistas como William Joy, co-fundador da Sun Microsystems. Outros especialistas em tecnologia, sobretudo Raymond Kurzwell, veem com entusiasmo o advento das máquinas inteligentes, dizendo que elas trarão grandes avanços para o aumento da expectativa de vida e a prosperidade em geral.&lt;br /&gt;&lt;br /&gt;— Acredito que, cedo ou tarde, teremos que fazer algum tipo de declaração em resposta ao crescimento do número de pessoas muito preocupadas com o surgimento de máquinas inteligentes — afirmou Horvitz&lt;br /&gt;&lt;br /&gt;Parâmetros serão divulgados&lt;br /&gt;&lt;br /&gt;Um relatório sobre a conferência, que aconteceu a portas fechadas, será divulgado no fim do ano. O relatório abordará a possibilidade de “perda de controle humano de inteligências baseadas em computadores”. Também abordará, segundo Horvitz , questão éticas, legais e socioeconômicas, bem como as prováveis mudanças da relação entre seres humanos e computadores. Como será, por exemplo, se relacionar com uma máquina tão ou mais inteligente quanto seu parceiro?&lt;br /&gt;(John Markoff, do The New York Times)&lt;br /&gt;(O Globo, 28/7)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chamem a BattleStar Galactica!! :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7997991090693396856?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7997991090693396856/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7997991090693396856' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7997991090693396856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7997991090693396856'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/07/cylons-aqui-e-agora.html' title='Cylons: aqui e agora!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6543604342276596045</id><published>2009-07-28T01:01:00.002-03:00</published><updated>2009-07-28T01:08:43.625-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Rede parando de funcionar no VirtualBox, após mudança de máquina virtual</title><content type='html'>.&lt;br /&gt;Estava aqui fazendo algumas experiências com o Ubuntu 8.10 no VirtualBox, e certa hora, quando recuperei um HD virtual gerado em um passo anterior (para seguir uma nova linha de experiências) a placa de rede (eth0) simplesmente sumiu.&lt;br /&gt;&lt;br /&gt;O comando...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sudo /etc/init.d/networking restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... gerava a seguinte mensagem de erro:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;error while getting interface flags: no such device&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O que aconteceu foi o seguinte: Primeiro, criei uma máquina virtual no VirtualBox, e nesta hora foi criada automaticamente uma placa de rede virtual com um certo número MAC (por exemplo, "x"). Instalei o Ubuntu, e ao final, fiz uma cópia de segurança do HD virtual (arquivo .vdi).&lt;br /&gt;&lt;br /&gt;Na continuação dos meus testes, resolvi deletar a máquina virtual anteriormente criada, e criar uma nova, cuja placa de rede virtual recebeu um número MAC diferente (por exemplo, "y"). Recuperei o HD virtual antigo para usar nesta nova máquina virtual, e pronto, aí está o problema: O ubuntu instalado no HD virtual faz referência a uma placa de rede com número MAC diferente do que está na máquina virtual recém criada.&lt;br /&gt;&lt;br /&gt;Para resolver:&lt;br /&gt;&lt;br /&gt;Edite o arquivo...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;/etc/udev/rules.d/70-persistent-net.rules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No meu caso, o arquivo continha 2 entradas: uma relativa a eth0, com número MAC errado (o número MAC da placa de rede da primeira máquina virtual), e a outra relativa a eth1, com o número MAC correto (ou seja, ele achou que a placa de rede com outro número MAC era, na verdade, &lt;span style="font-weight: bold;"&gt;OUTRA&lt;/span&gt; placa de rede).&lt;br /&gt;&lt;br /&gt;Estava mais ou menos assim:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;# This file was...&lt;br /&gt;# program run ...&lt;br /&gt;#&lt;br /&gt;# You can...&lt;br /&gt;&lt;br /&gt;# PCI device 0x1022:0x2000 (pcnet32)&lt;br /&gt;SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="28:04:37:aa:bd:02", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"&lt;br /&gt;&lt;br /&gt;# PCI device 0x1022:0x2000 (pcnet32)&lt;br /&gt;SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:49:0c:98", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apaguei a primeira entrada (eth0 com número MAC errado), e editei a segunda entrada (com número MAC correto), trocando eth1 para eth0.&lt;br /&gt;&lt;br /&gt;Ficou assim:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;# This file was...&lt;br /&gt;# program run ...&lt;br /&gt;#&lt;br /&gt;# You can...&lt;br /&gt;&lt;br /&gt;# PCI device 0x1022:0x2000 (pcnet32)&lt;br /&gt;SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:49:0c:98", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Após salvar, execute:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;sudo /etc/init.d/udev restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Depois, execute:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;sudo /etc/init.d/networking restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... e seja feliz novamente! :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Referências:&lt;/span&gt;&lt;br /&gt;http://seekerpt.blogspot.com/2009/05/eth0-error-while-getting-interface.html&lt;br /&gt;http://ubuntuforums.org/showthread.php?t=834225&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6543604342276596045?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6543604342276596045/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6543604342276596045' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6543604342276596045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6543604342276596045'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/07/rede-parando-de-funcionar-no-virtualbox.html' title='Rede parando de funcionar no VirtualBox, após mudança de máquina virtual'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-9011616428303671366</id><published>2009-07-23T17:07:00.012-03:00</published><updated>2010-11-15T11:56:13.901-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><title type='text'>Jon "Maddog" Hall em Ilhéus</title><content type='html'>.&lt;br /&gt;No dia 1.junho.2009 tivemos a honra de receber "Maddog" aqui em Ilhéus, para uma palestra sobre a importância do Software Livre em atividades educacionais e de pesquisa.&lt;br /&gt;&lt;br /&gt;Baixe &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0BxADg9hLk6J3NzU0ZDMzOTItNGMyMC00MTczLTllM2QtOGE4MzVkNmIzZTcw&amp;amp;hl=en&amp;amp;authkey=CLDAtmE"&gt;aqu&lt;/a&gt;&lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0BxADg9hLk6J3NzU0ZDMzOTItNGMyMC00MTczLTllM2QtOGE4MzVkNmIzZTcw&amp;amp;hl=en&amp;amp;authkey=CLDAtmE"&gt;i&lt;/a&gt; os slides da apresentação.&lt;br /&gt;&lt;br /&gt;Baixe o áudio da palestra (com tradução "quase" simultânea...)&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold; font-style: italic;"&gt;TEMPORARIAMENTE INDISPONÍVEL - PROCURANDO HOSPEDAGEM...&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Áudio - parte 1&lt;br /&gt;Áudio - parte 2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Título:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Free and open source in education: Software that teaches you twice&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Preparando...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHt2is8cI/AAAAAAAAAKk/L4SYGCL6uC4/s1600-h/IMG_0104.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHt2is8cI/AAAAAAAAAKk/L4SYGCL6uC4/s400/IMG_0104.JPG" alt="" id="BLOGGER_PHOTO_ID_5361754946933682626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Ainda preparando...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHuLo_F6I/AAAAAAAAAKs/oQcPmLNCq6U/s1600-h/IMG_0105.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHuLo_F6I/AAAAAAAAAKs/oQcPmLNCq6U/s400/IMG_0105.JPG" alt="" id="BLOGGER_PHOTO_ID_5361754952597182370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Apresentando o palestrante e o Isamar Maia, que fez a gentileza de conduzir uma tradução "quase simultânea" :-)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHu_10MtI/AAAAAAAAAK0/SD79vC2IlBo/s1600-h/IMG_0110.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHu_10MtI/AAAAAAAAAK0/SD79vC2IlBo/s400/IMG_0110.JPG" alt="" id="BLOGGER_PHOTO_ID_5361754966609638098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Palestra&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SmjHvYtRRYI/AAAAAAAAAK8/KUfTPhSqfH4/s1600-h/IMG_0114.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SmjHvYtRRYI/AAAAAAAAAK8/KUfTPhSqfH4/s400/IMG_0114.JPG" alt="" id="BLOGGER_PHOTO_ID_5361754973284681090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Cerveja com alunos no final!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SmjHvruIOXI/AAAAAAAAALE/MGG36vl28Lk/s1600-h/DSC02691.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SmjHvruIOXI/AAAAAAAAALE/MGG36vl28Lk/s400/DSC02691.JPG" alt="" id="BLOGGER_PHOTO_ID_5361754978388556146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Obrigado, Maddog!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abraços! Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-9011616428303671366?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/9011616428303671366/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=9011616428303671366' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9011616428303671366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9011616428303671366'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/07/jon-maddog-hall-em-ilheus.html' title='Jon &quot;Maddog&quot; Hall em Ilhéus'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/SmjHt2is8cI/AAAAAAAAAKk/L4SYGCL6uC4/s72-c/IMG_0104.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4234284524508816631</id><published>2009-06-20T15:28:00.004-03:00</published><updated>2009-06-20T15:35:33.589-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Mudanças no GCC 4.3</title><content type='html'>.&lt;br /&gt;Utilizei, no desenvolvimento do software GAIA (da minha tese de doutorado), uma biblioteca para manipulação de conjuntos nebulosos chamada &lt;a href="http://www.inra.fr/internet/Departements/MIA/M/fispro/indexen.html"&gt;FISPRO&lt;/a&gt; (Fuzzy Inference System Professional) , disponibilizada como software livre. Pode-se utilizar como um sistema completo, interativo, com interface gráfica em java, ou pode-se utilizar apenas as funções (API) da biblioteca, desenvolvida em C++. Em qualquer caso, no Linux, é preciso realizar a compilação da biblioteca, nada que um comandozinho "make" não resolva.&lt;br /&gt;&lt;br /&gt;Pois bem, compilei a biblioteca em setembro/outubro do ano passado, sem problemas, programa da tese terminado, tudo beleza.&lt;br /&gt;&lt;br /&gt;Estou retomando agora o trabalho com o programa, em especial para geração de uma versão em inglês para apresentar em um congresso. Como de lá pra cá eu zerei a máquina para trocar a versão do ubuntu (de 7.10 para 8.10), precisei agora reconstruir meu ambiente de desenvolvimento. Comecei pela biblioteca FISPRO, baixei, descompactei, ajustei o que tinha que ser ajustado, make.... e surgiu monte de &lt;span style="font-weight: bold;"&gt;warnings&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;erros&lt;/span&gt;!!! Em especial:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;warning: comparison with string literal results in unspecified behaviour&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;warning: deprecated conversion from string constant to ‘char*’&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;... e erros mesmo, relacionados com o uso de funções tais como strlen, strcmp, etc...&lt;br /&gt;&lt;br /&gt;Depois de passado o pânico e o desespero  :-)  mãos-a-obra para descobrir porque um programa que compilava direitinho subitamente deixou de compilar (e olha que nem mudou a versão, era exatamente o mesmo programa!).&lt;br /&gt;&lt;br /&gt;O motivo é que em 2008 eu usava o GCC versão 4.1, e agora estou usando o GCC 4.3. Pelo que entendi, esta nova versão do GCC não trás apenas novas funcionalidades e conserto de bugs, mas também &lt;span style="font-weight: bold;"&gt;algumas mudanças intencionais&lt;/span&gt; em algumas formas de uso, em especial para suportar novos padrões. Na maioria das vezes, as mudanças serão imperceptíveis, porém em alguns casos elas trarão algumas dores-de-cabeça para quem estiver migrando para o GCC 4.3.&lt;br /&gt;&lt;br /&gt;Uma dessas mudanças foi a "limpeza" realizada nos arquivos #include de forma a incluir o menor número possível de arquivos adicionais. Assim, muitos programas em C++ que não incluem explicitamente a &lt;cstring&gt; não mais compilarão.&lt;br /&gt;&lt;br /&gt;Essa é apenas uma das mudanças. Para uma descrição completa e detalhada, sugiro a consulta a esta página:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gcc.gnu.org/gcc-4.3/porting_to.html"&gt;http://gcc.gnu.org/gcc-4.3/porting_to.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bem, e como resolver, sem ter que alterar o código-fonte da biblioteca?&lt;br /&gt;&lt;br /&gt;Eu resolvi com a seguinte gambiarra: instalei, via synaptic, o GCC 4.1 (pacotes cpp-4.1 e g++-4.1). Mas não basta isso, vocẽ precisa também redirecionar o atalho "gcc" e "g++" para apontarem para a versão do gcc (e g++) que você quer usar.&lt;br /&gt;&lt;br /&gt;Vamos ver como a coisa funciona: abra o terminal, e vá para o diretório /usr/bin. Lá, exiba os arquivos que começam com gcc:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cd /usr/bin&lt;br /&gt;ls -l gcc*&lt;/blockquote&gt;Você vai ver algo do tipo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;lrwxrwxrwx 1 root root      7 2009-06-20 15:11 gcc -&gt; gcc-4.3&lt;br /&gt;-rwxr-xr-x 1 root root 208068 2009-01-23 17:20 gcc-4.3&lt;/blockquote&gt;Se você já tiver instalado o gcc 4.1, verá também:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;-rwxr-xr-x 1 root root 198916 2008-10-26 10:12 gcc-4.1&lt;/blockquote&gt;A primeira linha diz que o arquivo gcc, na verdade, é um "link simbólico" para outro arquivo, gcc-4.3. Isto significa que quando você executa o gcc, na verdade, está executando o gcc-4.3. Precisamos então, fazer o link apontar para o arquivo gcc-4.1, para utilizarmos esta versão do compilador. Isto é obtido com os seguintes comandos:&lt;br /&gt;&lt;br /&gt;sudo rm gcc  (para apagar o gcc)&lt;br /&gt;sudo ln -T gcc-4.1 gcc -s  (para recriar gcc, desta vez apontando para gcc-4.1)&lt;br /&gt;&lt;br /&gt;Agora, ao pedir o diretório, você deverá ver:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;lrwxrwxrwx 1 root root      7 2009-06-20 15:11 gcc -&gt; gcc-4.1&lt;br /&gt;-rwxr-xr-x 1 root root 198916 2008-10-26 10:12 gcc-4.1&lt;br /&gt;-rwxr-xr-x 1 root root 208068 2009-01-23 17:20 gcc-4.3&lt;/blockquote&gt;Não esqueça de fazer a mesma coisa com o g++:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ls -l g++*&lt;br /&gt;&lt;br /&gt;lrwxrwxrwx 1 root root      7 2009-06-20 15:20 g++ -&gt; g++-4.1&lt;br /&gt;-rwxr-xr-x 1 root root 200836 2008-10-26 10:11 g++-4.1&lt;br /&gt;-rwxr-xr-x 1 root root 212164 2009-01-23 17:17 g++-4.3&lt;/blockquote&gt;Para testar, use "gcc --version" (ou g++ --version).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;gcc (GCC) &lt;span style="font-weight: bold;"&gt;4.1.3&lt;/span&gt; 20080623 (prerelease) (Ubuntu 4.1.2-23ubuntu3)&lt;br /&gt;Copyright (C) 2006 Free Software Foundation, Inc.&lt;/blockquote&gt;E não esqueca de &lt;span style="font-weight: bold;"&gt;avisar aos desenvolvedores&lt;/span&gt; do código que você está tentando utilizar sobre esses problemas e mudanças. Lembre-se, colaborar com software livre não é apenas programar. Um relato de bugs e/ou problemas, é uma ajuda e tanto! (Eu já avisei a galera que desenvolve a biblioteca fispro.... :-)   ).&lt;br /&gt;&lt;br /&gt;Mais um aviso, lembre-se de fazer este tipo de alteração com bastante cuidado, para não "estragar" o seu sistema.&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;/cstring&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4234284524508816631?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4234284524508816631/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4234284524508816631' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4234284524508816631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4234284524508816631'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/06/mudancas-no-gcc-43.html' title='Mudanças no GCC 4.3'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3471824941927184036</id><published>2009-06-02T18:32:00.007-03:00</published><updated>2009-06-02T18:47:46.974-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Palestras no III ENSL / IV FSL-BA</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SiWdynczTII/AAAAAAAAAKc/v1vzlp7_F1w/s1600-h/gnomelovelogo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 154px; height: 154px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SiWdynczTII/AAAAAAAAAKc/v1vzlp7_F1w/s200/gnomelovelogo.png" alt="" id="BLOGGER_PHOTO_ID_5342850025853766786" border="0" /&gt;&lt;/a&gt;.&lt;br /&gt;Estive em Salvador/BA semana passada para participar de um &lt;a href="http://wiki.softwarelivre.org/Festival4"&gt;evento&lt;/a&gt; que reuniu o III ENSL - Encontro Nordestino de Software Livre e o IV Festival de Software Livre da Bahia, organizado principalmente pelo &lt;a href="http://wiki.dcc.ufba.br/bin/view/PSL"&gt;Projeto Software Livre Bahia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Neste evento, apresentei duas palestras:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;- Uma introdução a programação de GUIs com GTK+&lt;/span&gt; : abordou principalmente algumas dicas para ajudar os iniciantes na programação utilizando esta toolkit gráfica.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- Programação GTK: Uma introdução ao GLADE&lt;/span&gt; : apresentou o software GLADE, um grande auxiliador para a construção de interfaces gráficas utilizando a biblioteca GTK.&lt;/blockquote&gt;&lt;br /&gt;Os slides dessas palestras podem ser encontrados na &lt;a href="https://wiki.softwarelivre.org/GNOMEBR/Apresentacoes"&gt;página de apresentações&lt;/a&gt; do projeto &lt;a href="https://wiki.softwarelivre.org/GNOMEBR/WebHome"&gt;GNOME Brasil&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;PS: É sim, o blog voltou a vida.... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3471824941927184036?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3471824941927184036/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3471824941927184036' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3471824941927184036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3471824941927184036'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2009/06/palestras-no.html' title='Palestras no III ENSL / IV FSL-BA'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SiWdynczTII/AAAAAAAAAKc/v1vzlp7_F1w/s72-c/gnomelovelogo.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-9109585651940209647</id><published>2008-11-12T12:01:00.003-02:00</published><updated>2008-11-12T12:14:25.169-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reclamacao'/><title type='text'>Interdisciplinaridade ou corporativismo?</title><content type='html'>.&lt;br /&gt;"Interdisciplinaridade" é uma palavra bonita, bastante em moda nos meios acadêmicos atualmente. Está na hora então deste conceito ser aplicado também na hora do ingresso na carreira acadêmica, em especial nos requisitos exigidos nos concursos para as universidades públicas. Como diz uma colega minha aqui da UESC, Prof. Ana Paula Brandão Lopes, os que "&lt;span style="font-weight: bold;"&gt;ousam&lt;/span&gt;" mudar de área são sistematicamente excluídos.&lt;br /&gt;&lt;br /&gt;Isso me incomoda devido a minha trajetória: minha graduação foi na área de informática; no mestrado trabalhei com Geoprocessamento e Lógica Nebulosa, e estou finalizando o doutorado trabalhando com Geoprocessamento e Computação Inteligente (Redes Neurais Artificiais e Lógica Nebulosa), inclusive com o desenvolvimento e a disponibilização de um software completo para análise de dados espaciais (veja postagem &lt;a href="http://starfightercarlao.blogspot.com/2008/08/doutorado-geoprocessamento-e-computao.html"&gt;aqui&lt;/a&gt;). Bela trajetória "computonauta", não? O problema são os títulos!  Graduação em "Tecnologia de Processamento de Dados", Mestrado em "Estudos Populacionais e Pesquisas Sociais", e Doutorado em "Geografia". Pela prática atual, não dá para prestar concurso nem na Computação, nem na Geografia...&lt;br /&gt;&lt;br /&gt;A Ana Paula publicou um texto extremamente claro e objetivo sobre esse tema no Jornal da Ciência (disponível &lt;a href="http://www.jornaldaciencia.org.br/Detalhe.jsp?id=59807"&gt;aqui&lt;/a&gt;), que reproduzo com autorização da autora:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;20. Leitora comenta matéria “Concurso para professor na Universidade Federal dos Vales do Jequitinhonha e Mucuri”&lt;br /&gt;  &lt;br /&gt;“É urgente a necessidade de regulamentação dos requisitos que podem ou não ser exigidos nos concursos para professor”&lt;br /&gt;&lt;br /&gt;Mensagem de Ana Paula Brandão Lopes, da Universidade Estadual de Santa Cruz:&lt;br /&gt;&lt;br /&gt;“Onde fica a interdisciplinaridade? Tenho acompanhado os concursos das universidades públicas brasileiras já há alguns anos e tenho visto uma exclusão sistemática daqueles que participam de programas de pós-graduação interdisciplinares ou simplesmente "ousam" mudar de área entre a graduação e a pós, mesmo que a mudança seja em áreas correlatas.&lt;br /&gt;&lt;br /&gt;Só a título de citar alguns exemplos desse último concurso:&lt;br /&gt;&lt;br /&gt;- Nem um doutor em Engenharia Florestal, com graduação em Agronomia, ou um doutor em Agronomia com graduação em Engenharia Florestal poderiam concorrer a nenhuma das quatro vagas disponíveis na UFVJM para essas áreas.&lt;br /&gt;&lt;br /&gt;- Contabilistas com doutorado em Administração também ficam de fora das vagas para Administração, assim como administradores com doutorado em Ciências Contábeis.&lt;br /&gt;&lt;br /&gt;- E para "fechar com chave de ouro", apesar da imensa carência de pessoal com pós-graduação na área de computação, uma pessoa que tivesse feito a graduação em Matemática Computacional e depois feito a pós em Ciência da Computação estaria impedida de fazer o concurso para Sistemas de Informação. O mesmo vale para egressos do doutorado no LNCC, independente da graduação de origem.&lt;br /&gt;&lt;br /&gt;E os exemplos continuam em quase todas as vagas e não são exclusividade da UFVJM...&lt;br /&gt;&lt;br /&gt;Essa é uma situação recorrente, e que está prejudicando muita gente. São pessoas que trabalharam tão duro quanto os demais pelos seus títulos, e, às vezes, até mais, pela necessidade de adquirir conhecimentos de outras áreas que não a da sua graduação.&lt;br /&gt;&lt;br /&gt;Essas pessoas demonstraram competência para superar os desafios da interdisciplinaridade e agora se vêem impedidas até mesmo de concorrer àquelas que são atualmente as mais cobiçadas oportunidades de emprego para pós-graduados no Brasil.&lt;br /&gt;&lt;br /&gt;Existe uma expectativa de abertura de um grande número de vagas nas federais para os próximos anos, e alguma coisa precisa ser feita para impedir que essas situações continuem se reproduzindo.&lt;br /&gt;&lt;br /&gt;É urgente a necessidade de regulamentação dos requisitos que podem ou não ser exigidos nos concursos para professor, evitando que toda uma população de pós-graduados fique marginalizada desses concursos.&lt;br /&gt;&lt;br /&gt;A sugestão é que somente a última titulação possa ser especificada nos requisitos; além disso, deve haver garantias de que egressos de programas multidisciplinares ou de áreas afins cujos trabalhos estejam relacionados à área do concurso possam participar. A partir disso, que passem os melhores.”&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Bem, pelo menos a discussão começou. Já surgiu outro comentário sobre este assunto (veja &lt;a href="http://www.jornaldaciencia.org.br/Detalhe.jsp?id=59839"&gt;aqui&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Como diz um colega do PSL-BA, "vamo que vamo!"&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-9109585651940209647?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/9109585651940209647/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=9109585651940209647' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9109585651940209647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9109585651940209647'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/11/interdisciplinaridade-ou-corporativismo.html' title='Interdisciplinaridade ou corporativismo?'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-477645287482050900</id><published>2008-11-10T17:19:00.002-02:00</published><updated>2008-11-10T17:25:37.155-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>HOMENS unidos pelo fim da violência contras as MULHERES</title><content type='html'>.&lt;br /&gt;Copiado de&lt;br /&gt;&lt;a href="http://maisomeno.blogspot.com/2008/11/campanha-contra-violncia-s-mulheres.html"&gt;http://maisomeno.blogspot.com/2008/11/campanha-contra-violncia-s-mulheres.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;No dia 31 de outubro, o Governo Brasileiro, através da Secretaria Especial de Políticas para as mulheres, lançou a campanha da ONU, “Homens unidos pelo fim da violência contra as mulheres”. O objetivo do projeto é mobilizar homens de todo o mundo na luta contra a violência cometida contra as mulheres. Eles podem dar seu apoio assinando o manifesto que está disponível no site (&lt;a style="color: rgb(51, 51, 255);" href="http://www.homenspelofimdaviolencia.com.br/"&gt;http://www.homenspelofimdaviolencia.com.br/&lt;/a&gt;).&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;A ministra Nilcéa Freire, titular da SNPM enfatiza que "ao aderirem à campanha, por meio de assinaturas, os homens se comprometem publicamente a contribuir pela implementação integral da Lei Maria da Penha (11.340/06) e pela efetivação de políticas públicas que visam ao fim da violência contra as mulheres”. A meta é de atingir 500.000 assinaturas até 6 de dezembro. Os resultados da campanha serão divulgados em um grande evento e as assinaturas serão enviadas "on-line" ao Secretário Geral da ONU. A partir daí, os apoiadores brasileiros passarão a compor a campanha internacional.&lt;br /&gt;&lt;br /&gt;É importante que todos os blogs, sites, ajudem na divulgação, criando links diretos para endereço onde consta a lista de assinaturas a favor do projeto.&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-477645287482050900?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/477645287482050900/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=477645287482050900' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/477645287482050900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/477645287482050900'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/11/homens-unidos-pelo-fim-da-violencia.html' title='HOMENS unidos pelo fim da violência contras as MULHERES'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-9007058517055457055</id><published>2008-11-10T17:01:00.002-02:00</published><updated>2008-11-10T17:03:10.109-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>O mico do século!</title><content type='html'>.&lt;br /&gt;Cara, esse deve ser o maior mico da face da Terra....&lt;br /&gt;&lt;br /&gt;Mas que ficou legal, ficou!!!  :-)&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lk5_OSsawz4&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/lk5_OSsawz4&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-9007058517055457055?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/9007058517055457055/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=9007058517055457055' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9007058517055457055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/9007058517055457055'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/11/o-mico-do-sculo.html' title='O mico do século!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7851873276766616951</id><published>2008-11-04T13:29:00.003-02:00</published><updated>2008-11-18T09:36:27.037-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Seis por meia-dúzia!</title><content type='html'>.&lt;br /&gt;Um colega meu do mestrado, Marcelo Acha ("todos procuram, mas só o Marcelo Acha!"), em&lt;a href="http://geopublisher.blogspot.com/"&gt; seu blog&lt;/a&gt;, colocou de forma extremamente clara um pensamento com o qual concordo, e que cheguei a comentar com algumas pessoas:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;É impressionante a expectativa que se criou em torno do candidato do Partido Democrata na corrida à presidência dos EUA. Aqui no Brasil, inclusive, e em vários outros pontos ao redor do globo. Estava lendo alguns jornais on line, agora, e pude perceber essa "torcida" por Barack Obama, o que me fez voltar para este post extra.&lt;br /&gt;Ao que parece, o fato de Obama ser afrodescendente faz as pessoas pensarem que haverá mudanças profundas nas relações EUA-mundo. Doce ilusão... o candidato democrata passou todo o tempo de sua campanha tendo o cuidado de "descolar" sua imagem da possibilidade de oferecer uma mudança radical. Sabe que, para ganhar as eleições, precisa mostrar ao eleitorado WASP&lt;span style="font-weight: bold;"&gt;[1]&lt;/span&gt; que será sinônimo da continuidade. Ainda assim, corre sério risco de sofrer um atentado...&lt;br /&gt;Historicamente, os presidentes do Partido Democrata são ligados aos movimentos sindicais norte-americanos. Isso significa políticas protecionistas e, por conseguinte, endurecimento nas relações comerciais com os países periféricos (including Brazil, my brother!). Neste sentido, um presidente republicano seria "menos pior".&lt;br /&gt;Obama não quer se mostrar como candidato defensor das minorias, embora ninguém despreze votos de cubanos, judeus e portorriquenhos (todos, por sinal, mais simpatizantes dos republicanos que dos democratas). Portanto, nada mudará. A política externa estadunidense continuará a mesma porcaria, e nós continuaremos a ser considerados "quintal" ianque.&lt;br /&gt;A propósito, não torço por ninguém. Escolher entre Obama e Mc Cain é como comparar seis com meia dúzia...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;[1] White, Anglo Saxonic and Protestant, ou Branco, Anglo-Saxão e Protestante, o típico representante da classe média conservadora dos EUA.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Faço minhas as palavras dele!&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[ ATUALIZAÇÃO! ]&lt;/span&gt;&lt;br /&gt;Veja o descrito acima, de forma divertida, em&lt;br /&gt;&lt;a href="http://charges.uol.com.br/2008/11/06/barrack-obama-black-or-white/"&gt;http://charges.uol.com.br/2008/11/06/barrack-obama-black-or-white/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7851873276766616951?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7851873276766616951/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7851873276766616951' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7851873276766616951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7851873276766616951'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/11/seis-por-meia-dzia.html' title='Seis por meia-dúzia!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2036376332915720332</id><published>2008-10-15T23:08:00.004-03:00</published><updated>2008-10-15T23:17:27.303-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Campus Party: Caravana da Consultic (região de Ilhéus/Itabuna)</title><content type='html'>.&lt;br /&gt;Direto do &lt;a href="http://campusparty.com.br/"&gt;site&lt;/a&gt; da Campus Party:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Campus Party é considerado o maior evento de inovação tecnológica e entretenimento eletrônico em rede do mundo. Um encontro anual realizado desde 1997 na Espanha, que reúne durante sete dias milhares de participantes com seus próprios computadores procedentes de diversos países, com a finalidade de compartilhar curiosidades, trocar experiências e realizar todo tipo de atividades relacionadas a tecnologia, a cultura digital e ao entretenimento em rede.&lt;br /&gt;&lt;br /&gt;Os participantes da Campus Party mudam-se com seus computadores, malas e barracas para dentro das instalações do evento. Lá encontram uma completa infra-estrutura de serviços, lazer, higiene, segurança, alimentação e, principalmente, tecnologia. Durante uma semana a Campus Party transforma-se na casa de todos.&lt;br /&gt;&lt;br /&gt;Participam do evento estudantes, professores, cientistas, jornalistas, pesquisadores, artistas, empresários e curiosos. Todos buscam as últimas novidades tecnológicas, a troca livre de conteúdos e o compartilhamento de experiências ligadas ao mundo digital.&lt;/blockquote&gt;&lt;br /&gt;No Brasil, a primeira edição aconteceu em 2008 e contou com 3.300 participantes, muitos dos quais acamparam (literalmente) por sete dias no Parque do Ibirapuera, imersos no mundo da Tecnologia da Informação e Comunicação. Segundo a organização, cerca de 92 mil pessoas visitaram a área de exposições.&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://ilheusconsultic.wordpress.com/"&gt;Consultic&lt;/a&gt; e a Passos Turismo já estão organizando grupos para que um grande contingente da nossa região possa participar da CAMPUS PARTY 2009.&lt;br /&gt;&lt;br /&gt;A idéia é que sejam organizados 3(três) grupos com as seguintes características:&lt;br /&gt;&lt;br /&gt;GRUPO 01 – Viajando de ônibus (semi-leito, fretado) com hospedagem no próprio local do evento.&lt;br /&gt;&lt;br /&gt;GRUPO 02 – Viajando de avião com hospedagem no próprio local do evento.&lt;br /&gt;&lt;br /&gt;GRUPO 03 – Viajando de avião com hospedagem em hotel próximo ao local do evento.&lt;br /&gt;&lt;br /&gt;Maiores detalhes no site &lt;a href="http://consulticnacampusparty.wordpress.com/"&gt;http://consulticnacampusparty.wordpress.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SPaicjqy0SI/AAAAAAAAAKE/QDNRY6lLwwg/s1600-h/campuspartycopy.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 353px; height: 266px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SPaicjqy0SI/AAAAAAAAAKE/QDNRY6lLwwg/s400/campuspartycopy.jpg" alt="" id="BLOGGER_PHOTO_ID_5257568226496401698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Grande abraço!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2036376332915720332?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2036376332915720332/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2036376332915720332' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2036376332915720332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2036376332915720332'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/10/campus-party-caravana-da-consultic.html' title='Campus Party: Caravana da Consultic (região de Ilhéus/Itabuna)'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SPaicjqy0SI/AAAAAAAAAKE/QDNRY6lLwwg/s72-c/campuspartycopy.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-5389206874572970479</id><published>2008-10-08T15:46:00.001-03:00</published><updated>2008-10-08T15:48:03.670-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blues'/><title type='text'>Momento Blues 1</title><content type='html'>.&lt;br /&gt;Peço desculpas aos amigos do "Planeta PSL-BA" pelos posts não relacionados diretamente com Software Livre. Se alguém puder me ajudar a definir um "feed" filtrando pela tag "software livre", agradeço a ajuda!&lt;br /&gt;&lt;br /&gt;De qualquer modo, uma pausa na nossa vida de computonauta é sempre bem-vinda, não é? :-)&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rhrqZP_qVyU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/rhrqZP_qVyU&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-5389206874572970479?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/5389206874572970479/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=5389206874572970479' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5389206874572970479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5389206874572970479'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/10/momento-blues-1.html' title='Momento Blues 1'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4196209170101416181</id><published>2008-10-07T15:42:00.004-03:00</published><updated>2008-10-07T15:49:40.763-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reclamacao'/><title type='text'>Ainda falando sobre leis absurdas...</title><content type='html'>.&lt;br /&gt;Recebi o texto abaixo na lista da SBC (Sociedade Brasileira de Computação). Olha o absurdo de regras que acho que são elaboradas só para deleite de poder de alguém... porque nexo que é bom, necas!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt; Resolvi contar isso para todos vocês dado o absurdo que a situação me pareceu.&lt;br /&gt;&lt;br /&gt;Na última sexta-feira, como vocês bem sabem, foram divulgados os nomes dos selecionados para o ENADE assim como a data correta do dia da realização da prova. Sim, faltando um mês para a prova o MEC divulga as informações cruciais de uma prova que pode se tornar uma barreira na sua vida. Desde setembro que eu já sondava o site do MEC/ENADE tentando descobrir a data da prova...&lt;br /&gt;&lt;br /&gt;Agora vejam, estou inscrito em uma conferência que ocorrerá em São Paulo nos dias 8 e 9 de novembro. Estou com a inscrição paga, passagem comprada e metade das diárias pagas no hotel (reserva). Uma das poucas conferências decentes na área de Segurança da América Latina (só são duas, na verdade), com palestrantes internacionais e nacionais, da academia e da "indústria". Enfim, não é um evento pequeno.&lt;br /&gt;&lt;br /&gt;Passei a sexta-feira, quando recebi a notícia da data da prova, ligando para o MEC (0800616161) e, como já esperava, o número passou o dia ocupado. Hoje, há menos de 10 minutos, consegui enfim falar com o "Fala Brasil". Informei ao atendente a situação e ele, com toda calma do mundo, me diz que tudo que eu tinha que fazer era mandar um email para o ENADE/MEC informando isso tudo e aguardar o retorno no Diário Oficial sobre a minha dispensa, ou não, da prova. Uma ponta de esperança.&lt;br /&gt;&lt;br /&gt;Aí, na minha inocência, perguntei se o resultado saíria até semana que vem e obtive a grande solução do MEC. "Não senhor, isso só deverá ser divulgado em meados de Fevereiro de 2009".&lt;br /&gt;&lt;br /&gt;Ainda sem querer acreditar que alguém estava me dizendo aquilo perguntei se era isso mesmo: eu peço dispensa da prova agora, falto a prova e vou para a conferência e só fico sabendo do resultado em Fevereiro do ano que vem !? "Sim, sim, isso mesmo."&lt;br /&gt;&lt;br /&gt;Mas percebam o absurdo da situação, eu sou concluinte. Faltar a prova agora e não ter minha justificativa considerada válida pelo MEC implica que eu só poderei colar grau daqui a 3 anos, quando ocorrer outro ENADE. 3 anos.&lt;br /&gt;&lt;br /&gt;Só gostaria de deixar claro que não sou contra o ENADE. Acho MUITO importante que o ensino superior do país seja avaliado. Só estou questionando o absurdo de só saber se posso ser dispensado ou não DEPOIS DA REALIZAÇÃO da prova. Nessa horas eu entendo o comportamento de alguns alunos que simplesmente resolvem boicotar essas provas, respondendo de qualquer forma. (Lembrem-se do falecido Provão do MEC).&lt;br /&gt;&lt;br /&gt;Sei que alguns alunos podem estar passando por situação parecida aqui no CIn e por isso estou enviando esse email para a grad-l. Esse é só mais um exemplo desses que provam o quanto somos impotentes em algumas situações. Para quem eu reclamo sobre o MEC?! Para o Ministro da Educação? Mando um email para o Presidente ?&lt;br /&gt;&lt;br /&gt;Claro que não... vou perder o dinheiro da inscrição do evento, da reserva do hotel e ficar com as passagens para usar em algum outro momento da vida. E então no dia 9 de Novembro estarei lá, calado, iniciando a prova às 13hrs, que é o que sempre fazemos no país.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4196209170101416181?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4196209170101416181/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4196209170101416181' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4196209170101416181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4196209170101416181'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/10/ainda-falando-sobre-leis-absurdas.html' title='Ainda falando sobre leis absurdas...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2813043988521213155</id><published>2008-10-06T16:10:00.001-03:00</published><updated>2008-10-06T16:11:37.714-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><category scheme='http://www.blogger.com/atom/ns#' term='reclamacao'/><title type='text'>Leis que causam desigualdade</title><content type='html'>.&lt;br /&gt;Teóricamente, as leis deveriam ser um instrumento de igualdade: &lt;span style="font-style: italic;"&gt;"todos são iguais, perante a lei"&lt;/span&gt;. Porém existem leis que causam desigualdade, aparentemente sem lógica.&lt;br /&gt;&lt;br /&gt;As regras para saque do FGTS são desse tipo. Senão vejamos: imaginem duas pessoas: uma nascida em fevereiro, e a outra nascida em dezembro. As duas são funcionárias de uma empresa particular. As duas também prestam um concurso público (por exemplo, para a UESC), e são aprovadas. Elas pedem demissão da empresa particular, por exemplo, em JANEIRO.2005, e conforme as regras para saque do FGTS, terão que esperar 3 anos para poderem recuperar esse dinheiro. Até aí, tudo bem.&lt;br /&gt;&lt;br /&gt;O problema é uma regrinha adicional: "após 3 anos (...) e &lt;span style="font-weight: bold;"&gt;A PARTIR&lt;/span&gt; DO MÊS DO ANIVERSÁRIO". Ou seja, o que faz aniversário em fevereiro, poderá sacar seu dinheiro em fevereiro.2008. Já o outro terá que esperar até dezembro.2008!&lt;br /&gt;&lt;br /&gt;Qual o sentido disso? Que importância tem o mês de nascimento para definir o direito das pessoas? Notem que não é a IDADE, mas sim apenas o MÊS de nascimento!&lt;br /&gt;&lt;br /&gt;Se alguém souber, me explique!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2813043988521213155?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2813043988521213155/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2813043988521213155' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2813043988521213155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2813043988521213155'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/10/leis-que-causam-desigualdade.html' title='Leis que causam desigualdade'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3690766635321747929</id><published>2008-10-01T12:19:00.002-03:00</published><updated>2008-10-01T12:25:16.917-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pesquisa científica'/><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><title type='text'>O que é Software Livre ?</title><content type='html'>.&lt;br /&gt;Peço licenca aos amigos do "Planeta PSL-BA" para este post tão introdutório, mas explico o motivo: tive a alegria de ter meu blog listado no "&lt;a href="http://oblogdosblogs.wordpress.com/"&gt;blog dos blogs da costa do cacau&lt;/a&gt;", um repositório de blogs "localizados" em Ilhéus, Itabuna e cidades próximas. Como a audiência deste conjunto de blogs é formada principalmente por pessoas não técnicas da área de computação, achei que seria um momento importante para disseminar a idéia do software livre.&lt;br /&gt;&lt;br /&gt;Então, meu amigo leitor do "blog dos blogs", gostaria de apresentar a você o conceito de Software Livre, através do video abaixo, de uma entrevista concedida pelo sociólogo Sergio Amadeo:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wS6aNF3_IgM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/wS6aNF3_IgM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Se você gostou e se interessou, sugiro então que você de uma lida neste artigo, onde apresento argumentos que defendem que o uso de software livre é &lt;span style="font-weight: bold;"&gt;REQUISITO FUNDAMENTAL&lt;/span&gt; em um contexto educacional e de pesquisa científica:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://starfightercarlao.blogspot.com/2008/04/software-livre-e-o-verdadeiro-acesso-ao.html"&gt;http://starfightercarlao.blogspot.com/2008/04/software-livre-e-o-verdadeiro-acesso-ao.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3690766635321747929?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3690766635321747929/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3690766635321747929' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3690766635321747929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3690766635321747929'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/10/o-que-software-livre.html' title='O que é Software Livre ?'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-5114431752504574513</id><published>2008-09-30T01:01:00.002-03:00</published><updated>2008-09-30T01:09:33.500-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Nova arma contra phishing: Língua Portuguesa...</title><content type='html'>.&lt;br /&gt;O pessoal que faz &lt;span style="font-weight: bold;"&gt;phishing&lt;/span&gt; pode até saber muito de computação, mas de língua portuguesa...&lt;br /&gt;&lt;br /&gt;Recebi dois desses emails hoje. Vejam que pérolas:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;... acredito que a verdade tem que &lt;span style="font-weight: bold;"&gt;vim&lt;/span&gt; (!?!) em primeiro lugar ...&lt;br /&gt;&lt;br /&gt;... eu tava perto e &lt;span style="font-weight: bold;"&gt;consigui&lt;/span&gt; (argh!) fotos através de meu celular ...&lt;br /&gt;&lt;br /&gt;... Estou mandando a&lt;span style="font-weight: bold;"&gt;s&lt;/span&gt; foto&lt;span style="font-weight: bold;"&gt;s&lt;/span&gt; anexada  (!!!) quero ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tragetoria&lt;/span&gt; (aff!!) de Osama Bin Laden Chega ao Fim!!!&lt;/blockquote&gt;&lt;br /&gt;Dá até vergonha....&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-5114431752504574513?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/5114431752504574513/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=5114431752504574513' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5114431752504574513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5114431752504574513'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/nova-arma-contra-phishing-lngua.html' title='Nova arma contra phishing: Língua Portuguesa...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3293872336708501630</id><published>2008-09-22T12:50:00.000-03:00</published><updated>2008-09-22T12:51:53.873-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Dica para programadores GTK: DevHelp</title><content type='html'>.&lt;br /&gt;Na atividade de programação usando GTK (e qualquer outra biblioteca) é necessário uma constante consulta à documentação da API, seja na busca por um método que faça o que precisamos, seja para conferir os tipos dos parâmetros ou do valor retornado.&lt;br /&gt;&lt;br /&gt;No caso da biblioteca GTK (e suas bibliotecas parceiras), podemos baixar um pacotão com a documentação, ou consultar online em http://library.gnome.org/devel/references.&lt;br /&gt;&lt;br /&gt;Descobri ontem uma outra forma, offline, proporcionada pelo programa DevHelp. Instalável sem dores-de-cabeça pelo seu gerenciador de pacotes, fornece, no caso da GTK, a mesma documentação disponível online.&lt;br /&gt;&lt;br /&gt;Para utilizá-lo, não basta instalar apenas o DevHelp. Você precisa também instalar os pacotes de documentação das bibliotecas que você vai usar. No meu caso (Ubuntu), esses pacotes terminam com "-doc" (cheque o nome correto na sua distribuição, em especial se ela não for debian-based), como por exemplo:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;libatk1.0-doc&lt;br /&gt;libcairo2-doc&lt;br /&gt;libglib2.0-doc&lt;br /&gt;libgnomecanvas2-doc&lt;br /&gt;libgnomeui-doc&lt;br /&gt;libgtk2.0-doc&lt;br /&gt;libpango1.0-doc&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3293872336708501630?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3293872336708501630/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3293872336708501630' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3293872336708501630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3293872336708501630'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/dica-para-programadores-gtk-devhelp.html' title='Dica para programadores GTK: DevHelp'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7703300150310833349</id><published>2008-09-20T16:06:00.007-03:00</published><updated>2010-11-12T20:32:22.054-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Roteiro para criação de uma janela no GLADE</title><content type='html'>.&lt;br /&gt;Continuo ralando aqui com o GLADE. Depois de muitas cabeçadas e quase desistência, começei a gostar do bichinho. Talvez o grande problema seja a falta de um roteiro passo-a-passo, pois por mais que se leia sobre os widgets, em especial os que gerenciam o layout (vbox, hbox, table, etc.), e sobre suas propriedades, é difícil visualizar claramente qual será o efeito final.&lt;br /&gt;&lt;br /&gt;Tentando "começar" a preencher essa lacuna, apresento este passo-a-passo. O objetivo é criar a seguinte tela:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNVKBrM4niI/AAAAAAAAAJM/I6LZiSNP99U/s1600-h/post_tela_final.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNVKBrM4niI/AAAAAAAAAJM/I6LZiSNP99U/s320/post_tela_final.png" alt="" id="BLOGGER_PHOTO_ID_5248182333407272482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Vou listar então todos os passos que executei para construir esta tela. O objetivo aqui é que alguém refaça esses passos e com isso possa ter um exemplo das alterações no visual causadas por cada widget ou propriedade manipulada. Ressalto ainda que muitas das escolhas que fiz nessa construção foram baseadas no meu "senso" estético, e devem ser entendidas apenas como sugestões. Como de costume, sugestões e principalmente correções são extremamente bemvindas.&lt;br /&gt;&lt;br /&gt;Como este roteiro usa e abusa de identação, para mostrar a hierarquia entre widgets (quem vai dentro de quem, a que widget pertence tal propriedade, etc), resolvi não colocar direto aqui no post, mas sim disponibilizar um &lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZTM0MTY2ZGEtNDVkNi00Yjk5LWFiYjUtY2RjMTQzNGEzMGM2&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;arquivo texto&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lá pelo meio do roteiro, tem uma referência a uma figura. É esta aqui:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SNVQu-WiFdI/AAAAAAAAAJc/1f2QkcPFHkc/s1600-h/post_tela01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SNVQu-WiFdI/AAAAAAAAAJc/1f2QkcPFHkc/s320/post_tela01.png" alt="" id="BLOGGER_PHOTO_ID_5248189708711892434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Gostaria de aproveitar este momento para registrar um grande agradecimento ao &lt;a href="http://brunoboaventura.livejournal.com/"&gt;Bruno Boaventura&lt;/a&gt;, que tem me ajudado muitíssimo em diversos aspectos da programação com GTK.&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7703300150310833349?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7703300150310833349/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7703300150310833349' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7703300150310833349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7703300150310833349'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/roteiro-para-criao-de-uma-janela-no.html' title='Roteiro para criação de uma janela no GLADE'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/SNVKBrM4niI/AAAAAAAAAJM/I6LZiSNP99U/s72-c/post_tela_final.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6054267425781174621</id><published>2008-09-19T14:12:00.004-03:00</published><updated>2008-09-19T14:29:53.152-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Como preencher uma GtkComboBox criada no GLADE</title><content type='html'>.&lt;br /&gt;Penei com isso ontem um tempão. A GTK tem a função gtk_combo_box_append_text() (entre outras) com o objetivo de facilitar a criação de drop-downs de texto. Porém para usar esta função, o drop-down (GtkComboBox) tem que ter sido criado via &lt;a href="http://library.gnome.org/devel/gtk/unstable/GtkComboBox.html#gtk-combo-box-append-text"&gt;gtk_combo_box_new_text()&lt;/a&gt; , o que parece não ser o caso dos drop-downs criados via Glade. Na net, encontrei muita referência disso para outras linguagens (PHP por exemplo), mas nada para o velho e bom C... Felizmente, após muita procura, encontrei um pedaço de código que resolveu meu problema. Coloco ele aqui, comentado, na esperança de ajudar outros "desesperados" como eu ...  :-)&lt;br /&gt;&lt;br /&gt;Em linhas gerais, você precisa criar uma GtkListStore, para armazenar a lista de itens que vai aparecer no drop-down. Depois, associe esta lista ao drop-down, e finalmente defina COMO esta lista vai aparecer na tela ("ser renderizada"). UFA!  Bem que podia ter uma opção no GLADE para escolher como o drop-down vai ser criado na hora do uso, se via gtk_combo_box_new_text para simples drop-downs de texto, ou da forma default, para drop-downs mais elaboradas.&lt;br /&gt;&lt;br /&gt;No código abaixo, a variável "drop_bds" é um GtkWidget*, e contém minha drop-down (GtkComboBox).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[ OBS!! Sugiro que você copie o programa abaixo e cole em um editor de texto-puro, para melhor visualização da identação e dos comentários linha-a-linha. Não sei como colocar aquela janelinha de código que se encontra em blogs por aí, se alguém puder me ajudar, agradeço! ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;// um GtkComboBox implementa a GtkCellLayout. O comando abaixo apaga este layout.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Precisei fazer isso porque o conteúdo do meu drop-down é o resultado do click em um botão.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Se eu não apagar o layout logo no início, cada vez que aperto o botão o drop-down vai &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// crescendo, pois vai mantendo o layout anterior e adicionando o novo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_cell_layout_clear(GTK_CELL_LAYOUT(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;drop_bds&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// outras variaveis necessarias:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// inteiro, para ir contando os elementos que vamos inserir no drop-down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;cont&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// a GtkListStore que vai armazenar os elementos do drop-down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GtkListStore *&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;list_store&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// o "renderizador" que vai mostrar o conteúdo da lista dentro do drop-down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GtkCellRenderer *&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;renderer&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// um iterador, uma espécie de ponteiro que indica em que lugar da lista&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// vamos inserir o novo conteúdo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GtkTreeIter &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;iter&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                              &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// cria a GtkListStore, com apenas 1 coluna, conteúdo do tipo string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;list_store&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; = gtk_list_store_new (1, G_TYPE_STRING);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// laço que vai preencher a lista com as strings que vão compor o drop-down:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for(cont=0; cont &lt; &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;...numero de elementos a inserir...&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; ; cont++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // string que vai armazenar o texto a ser inserido no drop-down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   char &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;conteudo&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;[50];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // defina o conteudo da string acima&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // no meu caso, a string seria uma combinacao de outras strings e outros dados,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // provenientes de outras partes do programa. Optei por usar a função sprintf para&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // "montar" essa string. Veja o que é melhor no seu caso!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   sprintf(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;conteudo&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, "%s",&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt; ...o conteudo que voce quer na string... &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // Adiciona uma linha ( VAZIA! ) na lista (list_store), e faz o iterador (variável iter)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // apontar para ela, para que depois possamos "encher" essa linha vazia de conteúdo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   gtk_list_store_append (&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;list_store&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, &amp;amp;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;iter&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // armazena um valor na lista, na linha apontada por iter, nas colunas indicadas.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // A lista de colunas termina com um -1. Como só tenho 1 coluna na minha lista, fica:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   // 0 (primeira e única coluna) , conteudo (a string a inserir nessa linha) , -1 (fim!)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   gtk_list_store_set (&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;list_store&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, &amp;amp;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;iter&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, 0,&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt; conteudo&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, -1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// insere a lista que acabamos de montar dentro do drop-down:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_combo_box_set_model(GTK_COMBO_BOX(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;drop_bds&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;), GTK_TREE_MODEL(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;list_store&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// falta agora definir como essa lista irá aparecer na tela, isto é, ser renderizada.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// criação de um renderizador de textos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;renderer&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; = gtk_cell_renderer_text_new();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// insere o renderizador criado no drop-down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;drop_bds&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;), &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;renderer&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, TRUE);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// define as propriedades (atributos) deste renderizados. Lista-se cada propriedade&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// e terminamos a lista com um NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Neste caso, estamos definindo a propriedade "text" e seu valor 0 (não consegui encontrar na&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// documentação da API os atributos possíveis e seus valores.... &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;alguém me ajuda nisso?&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;drop_bds&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;), &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;renderer&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, "text", 0, NULL);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// até aqui está pronto, seu drop-down estará com o conteúdo desejado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// no meu caso, eu quero mostrar ao usuário que agora temos dados &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// no drop-down para ele escolher&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// (a primeira vez que o usuário vê minha janela, o drop-down está vazio)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Desta forma, vou usar um comando para tornar o primeiro item do &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// drop-down como item ativo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gtk_combo_box_set_active(GTK_COMBO_BOX(&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;drop_bds&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;), 0);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pronto. Divirtam-se!&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6054267425781174621?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6054267425781174621/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6054267425781174621' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6054267425781174621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6054267425781174621'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/como-preencher-uma-gtkcombobox-criada.html' title='Como preencher uma GtkComboBox criada no GLADE'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3952171729430377374</id><published>2008-09-18T02:56:00.008-03:00</published><updated>2008-09-18T04:21:18.187-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Continue mantendo sua sanidade com o Glade</title><content type='html'>.&lt;br /&gt;Pra quem está começando a trabalhar com GTK e GLADE, recomendo a leitura do excelente tutorial de &lt;a href="http://setanta.wordpress.com/"&gt;Marcelo Lira&lt;/a&gt;, "&lt;a href="http://www.cin.ufpe.br/%7Ecinlug/wiki/index.php/Mantendo_A_Sanidade_Com_O_Glade"&gt;Mantendo A Sanidade Com O Glade&lt;/a&gt;". Ele dá uma visão completa de todo o processo, desde o desenho da interface no GLADE até a compilação final, com exemplos em várias linguagens.&lt;br /&gt;&lt;br /&gt;O objetivo deste texto é complementar este tutorial, mostrando alguns problemas que aparecem no desenho da interface no GLADE, e as soluções que encontrei. Infelizmente este texto não é lá muito “básico”... será preciso algum conhecimento de GTK e até do próprio GLADE. Espero que seja útil mesmo assim. Outros textos introdutórios de GTK virão por aí em algum momento no futuro.&lt;br /&gt;&lt;br /&gt;Criaremos com o GLADE a seguinte caixa de diálogo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SNH1kPlQ0MI/AAAAAAAAAI8/BorG8Bfrp_I/s1600-h/Screenshot-Conectar+TerraView....png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SNH1kPlQ0MI/AAAAAAAAAI8/BorG8Bfrp_I/s320/Screenshot-Conectar+TerraView....png" alt="" id="BLOGGER_PHOTO_ID_5247245043870257346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Uma caixa de diálogo em GTK possui 2 áreas: uma superior, onde colocaremos nossos widgets, e outra inferior, com espaço para os botões. Podemos começar, então, inserindo no GLADE uma dialog box:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHycc6GbOI/AAAAAAAAAHc/km2QykiM-rA/s1600-h/tela01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHycc6GbOI/AAAAAAAAAHc/km2QykiM-rA/s320/tela01.png" alt="" id="BLOGGER_PHOTO_ID_5247241611473480930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Qual gerenciador de layout colocaremos na parte superior? Vamos analisar nossa interface: ela está mais ou menos organizada “por linhas”, como, por exemplo, a primeira linha (label “tipo de servidor” e drop-down para a escolha do tipo de servidor), ou a última linha (botão “listar bancos de dados”, e drop-down para escolher o banco de dados). Para organizar em linhas, utilizaremos então uma “vbox”.&lt;br /&gt;&lt;br /&gt;Agora, outra dúvida: quantas linhas teremos na vbox? Vemos 3 linhas óbvias (primeira, “tipo de servidor”; penúltima, “usuário e senha”; e última, “listar bancos de dados”). Mas, e quanto a localização do servidor? Serão mais 3 linhas?&lt;br /&gt;&lt;br /&gt;Na verdade, configura apenas mais 1 linha, pois as 3 linhas que vemos ("endereço ip", "nome" e "nesta máquina") estão AGRUPADAS dentro de um único widget, chamado frame (“localização do servidor”). Precisaremos então de apenas mais uma linha, para inserir a frame. Dentro da frame, aí sim, teremos que criar 3 linhas.&lt;br /&gt;&lt;br /&gt;Vemos então na figura abaixo, nossa interface com a vbox configurada para 4 itens:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHycTxw9aI/AAAAAAAAAHk/Ax0T1HRpSYk/s1600-h/tela02.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHycTxw9aI/AAAAAAAAAHk/Ax0T1HRpSYk/s320/tela02.png" alt="" id="BLOGGER_PHOTO_ID_5247241609022600610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A primeira linha possui 2 widgets, organizados horizontalmente. Logo utilizaremos uma hbox, com 2 espaços disponíveis.&lt;br /&gt;&lt;br /&gt;Na segunda linha, como já falamos, colocaremos uma frame.&lt;br /&gt;&lt;br /&gt;Na terceira linha teremos 4 widgets, também organizados horizontalmente. Usaremos então uma hbox de 4 itens.&lt;br /&gt;&lt;br /&gt;Finalmente, a última linha terá 2 itens, organizados horizontalmente. Nova hbox, de 2 itens.&lt;br /&gt;&lt;br /&gt;Nossa interface fica como apresentado na figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHycvCsuvI/AAAAAAAAAHs/j4-mZG57v3w/s1600-h/tela03.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHycvCsuvI/AAAAAAAAAHs/j4-mZG57v3w/s320/tela03.png" alt="" id="BLOGGER_PHOTO_ID_5247241616341383922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Vamos pensar um pouco como ficará o interior da nossa frame na linha 2. Podemos pensar numa organização também por linhas, mas se olharmos mais atentamente poderemos perceber a existência de linhas &lt;span style="font-weight: bold;"&gt;E&lt;/span&gt; colunas (temos uma coluna de radio buttons, e outra de dados extras, ligados a esses radio buttons). Assim, ao invés de usar uma vbox, usaremos uma table, com 3 linhas e 2 colunas. Nossa interface fica como na figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHycpsPBDI/AAAAAAAAAH0/qHUrL7r74OM/s1600-h/tela04.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHycpsPBDI/AAAAAAAAAH0/qHUrL7r74OM/s320/tela04.png" alt="" id="BLOGGER_PHOTO_ID_5247241614904984626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ainda sobre esta tabela, notemos a área localizada na primeira linha, segunda coluna: aqui teremos um conjunto de 7 widgets, composto por caixas de texto e labels (pontos), organizados horizontalmente. Vamos inserir então a última hbox de nossa interface, com 7 itens.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHycxYknNI/AAAAAAAAAH8/Cy9sSlXYvFw/s1600-h/tela05.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHycxYknNI/AAAAAAAAAH8/Cy9sSlXYvFw/s320/tela05.png" alt="" id="BLOGGER_PHOTO_ID_5247241616969997522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Agora que o layout da interface está planejado, podemos inserir seus diversos widgets (labels, caixas de texto, botões, drop-down). Apenas inseri os widgets, colocando os textos corretos, sem mexer ainda em outras configurações. Nesse momento, algo estranho acontece: a janela cresce demais! Se fizermos um teste de apresentação real da janela (usando libglade), vemos que ela está longe de ser visualmente agradável:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Glade:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHy_FJ5yJI/AAAAAAAAAIE/ny-8n8S1I2o/s1600-h/tela06.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SNHy_FJ5yJI/AAAAAAAAAIE/ny-8n8S1I2o/s320/tela06.png" alt="" id="BLOGGER_PHOTO_ID_5247242206392731794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Programa compilado:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHy_l-06CI/AAAAAAAAAIM/nmSsZTupCK4/s1600-h/tela07.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHy_l-06CI/AAAAAAAAAIM/nmSsZTupCK4/s320/tela07.png" alt="" id="BLOGGER_PHOTO_ID_5247242215204644898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Vamos começar então a “arrumar a casa”. O primeiro problema é o tamanho default das caixas de texto. Na linha do “endereço ip”, cada caixa só precisa armazenar (e exibir) no máximo 3 caracteres. Para as outras, vamos definir exibição de 10 caracteres. A propriedade “maximum length” define o número máximo de caracteres que a caixa poderá armazenar, e a propriedade “width in chars” é o tamanho (em caracteres) da caixa.&lt;br /&gt;&lt;br /&gt;Outro problema está relacionado a configuração de expansão dos widgets. Por default, está definido que cada widget vai expandir e ocupar todo o espaço livre disponível. Note na figura acima, por exemplo, a primeira linha (“tipo de servidor”). Como todo o diálogo está aumentado por causa das caixas de texto, o gerenciador de layout dividiu o espaço extra igualmente pelo label “Tipo de servidor” e o drop-down ao seu lado. Precisamos, portanto, desligar a propriedade “expand” de alguns widgets. Cada caso é um caso, mas podemos ter como regra geral fazer isso nos widgets “da esquerda”, e em especial nos labels. Se sobrar espaço na direita, deixamos as caixas de texto e drop-down ocuparem o espaço extra.&lt;br /&gt;&lt;br /&gt;Assim, desligaremos a propriedade “expand” dos seguintes widgets:&lt;br /&gt;&lt;br /&gt;- label “Tipo de servidor”;&lt;br /&gt;- radio “endereço ip”;&lt;br /&gt;- labels dos pontinhos no endereço ip;&lt;br /&gt;- radio “nome”;&lt;br /&gt;- radio “nesta máquina”;&lt;br /&gt;- label “usuário”;&lt;br /&gt;- label “senha”;&lt;br /&gt;- botão “listar bancos de dados”.&lt;br /&gt;&lt;br /&gt;Após essas alterações, o GLADE continuou mostrando o diálogo aumentado (pelo menos no meu caso). Também não consegui diminuir seu tamanho arrastando as bordas. Neste momento fechei o projeto e reabri, e aí sim, ele mostrou o diálogo no seu novo tamanho real. De qualquer modo, é sempre bom ir testando “ao vivo”, através de um programa. Como a interface é desenhada “na hora” (dinamicamente), não precisa nem recompilar, basta salvar o arquivo &lt;span style="font-style: italic;"&gt;.glade&lt;/span&gt; e rodar o programa para ver o resultado. O estado atual de nossa interface é apresentada na figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNH-1pzQknI/AAAAAAAAAJE/CFuc5JrWuDA/s1600-h/tela08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNH-1pzQknI/AAAAAAAAAJE/CFuc5JrWuDA/s320/tela08.png" alt="" id="BLOGGER_PHOTO_ID_5247255238570709618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bem melhor, não é? Agora só precisamos passar um “pente fino”. Vamos colocar um espaço após os dois-pontos dos labels “Tipo de servidor” e “usuário”, para aumentar a separação entre eles e o widget ao seu lado. No label “senha”, vamos colocar um espaço antes da palavra e outro depois dos dois-pontos. Vamos também colocar um espaço antes e outro depois do texto no botão “Listar bancos de dados”. Vamos aproveitar e tirar os dois-pontos depois do label “nesta máquina” ( só vi o erro agora... :-)  )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SNHy_yL5_hI/AAAAAAAAAIc/TbRLibShneA/s1600-h/tela09.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SNHy_yL5_hI/AAAAAAAAAIc/TbRLibShneA/s320/tela09.png" alt="" id="BLOGGER_PHOTO_ID_5247242218480729618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As “linhas” que compõem a interface estão muito apertadas, muito próximas umas das outras. Vamos então aumentar o espaçamento entre elas. Lembra da vbox que inserimos no início do processo? Vamos aumentar a propriedade “spacing” para 6:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHzAPWTPTI/AAAAAAAAAIk/bdBGBphe7Mk/s1600-h/tela10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SNHzAPWTPTI/AAAAAAAAAIk/bdBGBphe7Mk/s320/tela10.png" alt="" id="BLOGGER_PHOTO_ID_5247242226308955442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Note que o conteúdo da frame não foi espaçado, pois está todo em apenas uma “célula” da vbox. Para espaçar este conteúdo, precisamos alterar a propriedade “row spacing” da tabela que inserimos na frame. Coloquei o valor 4. Ainda na frame, podemos ligar o contorno, para desenhar uma caixa. Para isso, vamos alterar a propriedade “frame shadow”, colocando “etched in”.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHzhf3FXXI/AAAAAAAAAIs/UrqZgJ_AyCI/s1600-h/tela11.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHzhf3FXXI/AAAAAAAAAIs/UrqZgJ_AyCI/s320/tela11.png" alt="" id="BLOGGER_PHOTO_ID_5247242797677108594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Podemos notar mais 2 probleminhas dentro da frame: o primeiro é que todos os radio buttons estão ativos! Isso acontece porque o GTK não sabe que eles pertencem a um mesmo grupo, ele acha que são 3 radios separados! Para resolver este problema é preciso estabelecer uma ligação entre eles. Para isso, alteramos a propriedade “group”. Por exemplo, vamos no radio “nome”, e na propriedade group marcaremos o radiobutton1 (“endereço IP”). Faremos o mesmo com o radio “nesta máquina”. Resumindo: radiobutton2 e radiobutton3 fazem referência a radiobutton1, e com isso, todos os 3 ficam no mesmo grupo.&lt;br /&gt;&lt;br /&gt;O segundo problema é estético: há um espaço grande, no lado esquerdo da frame, e um espaço mínimo no lado direito (ambos por dentro da frame). Isto pode ser ajustado através das propriedades “left padding” e “right padding” do widget “alignment” (é um dos widgets que compõem a frame). Colocaremos o valor 6 tanto na direita como na esquerda.&lt;br /&gt;&lt;br /&gt;Uma última coisa a ser feita, definir o título da janela, na propriedade “window title” do diálogo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHzhn7AdOI/AAAAAAAAAI0/bzIuCImZYB4/s1600-h/tela12.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SNHzhn7AdOI/AAAAAAAAAI0/bzIuCImZYB4/s320/tela12.png" alt="" id="BLOGGER_PHOTO_ID_5247242799841047778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Prontinho! Não esqueça de definir os nomes das callback functions nos widgets correspondentes.&lt;br /&gt;&lt;br /&gt;A propósito... tive um problema ao tentar utilizar a função glade_xml_signal_autoconnect (liga automaticamente os eventos gerados pelos widgets às funções callback que definimos no nosso programa principal), pois o programa que estou fazendo é um “híbrido” C/C++. Estou programando em C, usando GTK em C, porém também preciso usar uma biblioteca específica (TerraLib) feita em C++. Logo, estou compilando em C++, e por causa de características específicas desta linguagem acerca de nomes de funções, o autoconnect não consegue encontrar as funções callback. A solução é bem simples: basta definir as funções como “extern C”, assim:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;extern "C" void bot_conct(GtkButton *bt, GtkWidget *win)&lt;br /&gt;{&lt;br /&gt;   printf("teste...");&lt;br /&gt;   getchar();&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;Também precisa adicionar a opção -rdynamic ou -export-dynamic no linkeditor.&lt;br /&gt;&lt;br /&gt;Bem, é isso aí. Não deixem de comentar com dúvidas e/ou correções.&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3952171729430377374?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3952171729430377374/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3952171729430377374' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3952171729430377374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3952171729430377374'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/continue-mantendo-sua-sanidade-com-o.html' title='Continue mantendo sua sanidade com o Glade'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YcnKHahXCEc/SNH1kPlQ0MI/AAAAAAAAAI8/BorG8Bfrp_I/s72-c/Screenshot-Conectar+TerraView....png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2004178116746103848</id><published>2008-09-02T11:13:00.003-03:00</published><updated>2008-09-12T20:48:51.280-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Abraçe um programador hoje!</title><content type='html'>.&lt;br /&gt;Demais!&lt;br /&gt;&lt;br /&gt;Obs: Se você acessar o vídeo no site do YouTube, poderá ligar as legendas. Clique, no canto inferior direito, em "CC" (closed caption).&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/dLislmjApIw&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/dLislmjApIw&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2004178116746103848?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2004178116746103848/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2004178116746103848' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2004178116746103848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2004178116746103848'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/09/abrae-um-programador-hoje.html' title='Abraçe um programador hoje!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2916429932903307932</id><published>2008-08-28T19:52:00.007-03:00</published><updated>2008-09-12T21:13:34.169-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Motivação para trabalhos intelectuais</title><content type='html'>.&lt;br /&gt;Esta é a tirinha de Calvin &amp;amp; Haroldo que me inspirou durante o doutorado, em especial agora na reta final - quando entrei no, como Calvin diz, "right mood"...    :-)&lt;br /&gt;&lt;br /&gt;(clique na figura para ampliar)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SLctcbqK7_I/AAAAAAAAAGk/5qnUQK2bJhQ/s1600-h/last_minute_panic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 426px; height: 139px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SLctcbqK7_I/AAAAAAAAAGk/5qnUQK2bJhQ/s400/last_minute_panic.jpg" alt="" id="BLOGGER_PHOTO_ID_5239706657953083378" border="0" /&gt;&lt;/a&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2916429932903307932?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2916429932903307932/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2916429932903307932' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2916429932903307932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2916429932903307932'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/motivao-para-trabalhos-intelectuais.html' title='Motivação para trabalhos intelectuais'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SLctcbqK7_I/AAAAAAAAAGk/5qnUQK2bJhQ/s72-c/last_minute_panic.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2881954556760236956</id><published>2008-08-24T15:24:00.002-03:00</published><updated>2008-08-24T16:20:56.527-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Só pra ser chato...</title><content type='html'>.&lt;br /&gt;posição - país - ouro - prata - bronze&lt;br /&gt;&lt;br /&gt;22 - Brasil - 3 - 4 - 8&lt;br /&gt;...&lt;br /&gt;27 - Cuba - 2 - 9 - 11&lt;br /&gt;...&lt;br /&gt;33 - Argentina - 2 - 0 - 3&lt;br /&gt;&lt;br /&gt;:-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2881954556760236956?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2881954556760236956/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2881954556760236956' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2881954556760236956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2881954556760236956'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/s-pra-ser-chato.html' title='Só pra ser chato...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4140626704821766284</id><published>2008-08-21T16:11:00.023-03:00</published><updated>2010-11-12T20:26:29.906-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='doutorado'/><category scheme='http://www.blogger.com/atom/ns#' term='gaia'/><title type='text'>Doutorado: Geoprocessamento e Computação Inteligente: Possibilidades, vantagens e necessidades</title><content type='html'>.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[ ATUALIZAÇÃO  8.fevereiro.2009 ]&lt;/span&gt;&lt;br /&gt;Texto e código-fonte disponíveis; correção de links;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;RESUMO&lt;/span&gt;&lt;br /&gt;As técnicas de análise de dados e de busca de soluções fornecidas pela Computação Inteligente tiveram, nos últimos tempos, um grande avanço em seu desenvolvimento. Essas técnicas têm sido utilizadas com eficácia e eficiência no tratamento de problemas complexos e/ou que possuam uma grande quantidade de dados a serem processados. A integração destas técnicas com as ferramentas computacionais de produção e análise de informações geográficas (Geoprocessamento) é, portanto, muito vantajosa, especialmente com relação à grande quantidade de dados geralmente envolvida nas questões de natureza espacial. Este trabalho apresenta dois exemplos de uso de técnicas de Computação Inteligente em procedimentos de produção e análise de informações geográficas: um Sistema de Raciocínio Nebuloso (baseado na Lógica Nebulosa) para a construção de um mapa de fertilidade de solos, e uma Rede Neural Artificial para a identificação de agrupamentos espaciais em dados sócio-econômicos. Os dois exemplos foram conduzidos utilizando-se um software especialmente construído para esta finalidade, denominado GAIA – Geoprocessamento Apoiado por Inteligência Artificial –, e que doravante está disponível como Software Livre para qualquer pesquisador interessado em utilizar estas ferramentas. O estudo conclui que o uso das técnicas provenientes da computação inteligente, em comparação com técnicas tradicionais de análise de dados, contribuiu para um aumento da qualidade dos resultados obtidos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZTNiZDdlYzMtOWM1MS00OWZhLWI0YzktNzhmNWU0ODZkZGFi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;&lt;span style="font-weight: bold;"&gt;Texto disponível aqui&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Software GAIA - Geoprocessamento Apoiado por Inteligência Artificial&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Grupo de discussão:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://groups.yahoo.com/group/gaia_geoprocessamento_ia"&gt;http://groups.yahoo.com/group/gaia_geoprocessamento_ia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Licença:&lt;/span&gt;&lt;br /&gt;GNU General Public License (GPL) version 3&lt;br /&gt;Licença Pública Geral GNU - versão 3&lt;br /&gt;Disponível em &lt;a href="http://www.gnu.org/licenses/gpl.html"&gt;www.gnu.org/licenses/gpl.html&lt;/a&gt;&lt;br /&gt;Tradução não oficial para português:&lt;a href="http://www.fsfla.org/svnwiki/trad/GPLv3"&gt; www.fsfla.org/svnwiki/trad/GPLv3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3YzVlNWUwMjYtYmY0YS00Y2MxLWJiNjMtNTA1ZWZjYzUwMTA3&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Executável&lt;/a&gt; (GNU/linux, i386, requer GTK)&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZTBlYjJiNWQtMTc4OC00ZjNlLTg3ZmQtNDU2YmRkOWVjNmE0&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Dados dos exemplos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3YmIwOWQ0YTktMjg0Ni00M2QwLWFlNTQtNDk4ZDgwMmYwNmZj&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Instruções para instalação&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Tutorial passo-a-passo para os exemplos apresentados na tese: inserido no texto da tese, disponível no link apresentado no início desta postagem&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3MmEyNWRjOGQtMmNkOS00NGQ0LWExYjktMjIzYzY2ZmMzYjRi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Código-fonte&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ATENÇÃO! está disponível acima apenas o código-fonte (arquivos cpp e glade, além de algumas imagens). Em breve disponibilizarei aqui o makefile, junto com instruções detalhadas para compilação junto com a TerraLib.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- live-cd (GAIA, TerraView, MYSQL, tutoriais + dados)&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);"&gt;Arquivo ISO indisponível, por falta de local de hospedagem.&lt;/span&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZjU2YmE2ZGMtZTNhYy00NGJiLWIxMTUtZDBjOWVhMmQxNjFl&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Leia-me !!&lt;/a&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4140626704821766284?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4140626704821766284/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4140626704821766284' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4140626704821766284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4140626704821766284'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/doutorado-geoprocessamento-e-computao.html' title='Doutorado: Geoprocessamento e Computação Inteligente: Possibilidades, vantagens e necessidades'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-1608242458460226876</id><published>2008-08-16T09:55:00.007-03:00</published><updated>2008-09-12T20:49:28.369-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Netbeans 6.1 com C/C++ : Configurando um projeto para utilizar GTK - ATUALIZAÇÃO!! MUITO MAIS FÁCIL !!</title><content type='html'>.&lt;br /&gt;Expliquei &lt;a href="http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-configurando-um.html"&gt;neste post&lt;/a&gt; como configurar o NetBeans 6.1 para compilar um programa usando a biblioteca GTK. Hoje, meio por acaso, descobri uma forma muitííííssimo mais simples!! De qualquer modo, o post original ainda merece ser consultado, pois contém algumas informações importantes e interessantes.&lt;br /&gt;&lt;br /&gt;Vou direto ao ponto. Quem quiser ver telinhas, como já disse, consulte o post original.&lt;br /&gt;&lt;br /&gt;Após criar o novo projeto:&lt;br /&gt;&lt;br /&gt;1) abra a janela de propriedades do projeto;&lt;br /&gt;&lt;br /&gt;2) No painel da esquerda, clique em "C compiler", debaixo de "Build";&lt;br /&gt;&lt;br /&gt;3) No meio do topo da janela, no drop-down "configuration", escolha "&lt;all&gt;all configurations" (a explicação deste item pode ser encontrada &lt;a href="http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-diferena-entre-o.html"&gt;aqui&lt;/a&gt;);&lt;br /&gt;&lt;br /&gt;4) No painel da direita, clique nos "três pontinhos" do item "additional options", localizado em "command line";&lt;br /&gt;&lt;br /&gt;5) Na caixa "additional options", coloque:&lt;br /&gt;&lt;/all&gt;&lt;blockquote&gt;`pkg-config --cflags gtk+-2.0`&lt;/blockquote&gt;6) clique em [OK];&lt;br /&gt;&lt;br /&gt;7) No painel da esquerda, clique em "Linker", ainda dentro do grupo "Build";&lt;br /&gt;&lt;br /&gt;8) No painel da direita, clique nos "três pontinhos" do item "additional options", localizado em "command line";&lt;br /&gt;&lt;br /&gt;9) Na caixa "additional options", coloque:&lt;br /&gt;&lt;blockquote&gt;`pkg-config --libs gtk+-2.0`&lt;/blockquote&gt;10) clique em [OK];&lt;br /&gt;&lt;br /&gt;11) clique em [apply] e [OK] para fechar a janela de propriedades do projeto.&lt;br /&gt;&lt;br /&gt;Prontinho!! Seu NetBeans está preparado para compilar usando GTK!&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-1608242458460226876?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/1608242458460226876/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=1608242458460226876' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1608242458460226876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1608242458460226876'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-configurando-um_16.html' title='Netbeans 6.1 com C/C++ : Configurando um projeto para utilizar GTK - ATUALIZAÇÃO!! MUITO MAIS FÁCIL !!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4929459523773377666</id><published>2008-08-02T00:40:00.009-03:00</published><updated>2008-12-08T21:56:03.837-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Netbeans 6.1 com C/C++ : Configurando um projeto para utilizar GTK</title><content type='html'>.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[ ATENÇÃO!! coloquei uma forma muito mais fácil &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-configurando-um_16.html"&gt;neste post&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;. Porém este post contém algumas imagens que podem ainda ser úteis ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Siga esses passos para configurar o NetBeans 6.1 para compilar programas usando GTK. Estou admitindo que seu sistema já tem as bibliotecas necessárias instaladas (se não tiver, use o synaptic para instalar a biblioteca libgtk2.0-dev e suas dependências). Também estou admitindo que seu NetBeans tem o pacote para desenvolvimento C/C++:&lt;br /&gt;&lt;br /&gt;1) Prepare um arquivo texto (chamei de "parametros.txt') com os parâmetros necessários (diretórios de includes e bibliotecas, e nomes de bibliotecas). Isso é feito, no terminal, utilizando o comando:&lt;br /&gt;&lt;br /&gt;pkg-config --cflags --libs gtk+-2.0 &gt; parametros.txt&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPYrmINohI/AAAAAAAAAGQ/sSFYNo6Ffn4/s1600-h/parametros.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPYrmINohI/AAAAAAAAAGQ/sSFYNo6Ffn4/s400/parametros.png" alt="" id="BLOGGER_PHOTO_ID_5229761835788247570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2) Crie um novo projeto:&lt;br /&gt;&lt;br /&gt;menu file | new project&lt;br /&gt;&lt;br /&gt;3) Escolha C/C++ em categories, e C/C++ Application em Projects.&lt;br /&gt;&lt;br /&gt;4) Preencha com os dados do projeto: nome e diretório onde será armazenado.&lt;br /&gt;&lt;br /&gt;5) O projeto é criado, por padrão, para utilizar as ferramentas de debug. Para alternar entre essas formas de compilação (modos &lt;span style="font-style: italic;"&gt;Debug&lt;/span&gt; ou &lt;span style="font-style: italic;"&gt;Release&lt;/span&gt;), acesse:&lt;br /&gt;&lt;br /&gt;build | set main project configuration&lt;br /&gt;&lt;br /&gt;Escolha "release" se você não quiser informações de debug. Utilize essa opção apenas quando seu programa já estiver pronto! Para maiores detalhes sobre os modos de compilação, veja o &lt;a href="http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-diferena-entre-o.html"&gt;post anterior&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;6) Vamos agora definir os parâmetros de compilação específicos para uso da GTK, isto é, inserir no NetBeans os dados do arquivo "parametros.txt":&lt;br /&gt;&lt;br /&gt;file | "nome_do_seu_projeto" properties  , ou clique com o botão direito no nome do projeto, e escolha "properties".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPXpdSR5QI/AAAAAAAAAFQ/iL5LTpTWjYQ/s1600-h/tela01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPXpdSR5QI/AAAAAAAAAFQ/iL5LTpTWjYQ/s400/tela01.png" alt="" id="BLOGGER_PHOTO_ID_5229760699543184642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Na janela que vai abrir, clique em "C compiler", debaixo de "build" (lado esquerdo da janela).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPXp5C9soI/AAAAAAAAAFY/fq7TGo7xk74/s1600-h/tela06.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPXp5C9soI/AAAAAAAAAFY/fq7TGo7xk74/s400/tela06.png" alt="" id="BLOGGER_PHOTO_ID_5229760706995139202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Neste momento, note a primeira linha da janela, tem um campo escrito "configuration: debug (active)". Isto significa que qualquer modificação só estará valendo para a compilação no modo &lt;span style="font-style: italic;"&gt;Debug&lt;/span&gt;. Devemos trocar para "all configurations", ou seja, as configurações que faremos aqui valerão para qualquer tipo de compilação (&lt;span style="font-style: italic;"&gt;Debug&lt;/span&gt; ou &lt;span style="font-style: italic;"&gt;Release&lt;/span&gt;). &lt;span style="font-weight: bold;"&gt;ATENÇÃO! NAS TELAS ABAIXO, ESTE CAMPO DE CONFIGURAÇÃO APARECERÁ COMO "DEBUG", MAS O CORRETO É ESTAR COMO "ALL CONFIGURATIONS" !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos preencher o item "include directories", dentro de "general" (clique no botão com três pontinhos a direita). Vai abrir uma janela para definição dos diretórios onde estão os includes (arquivos *.h).&lt;br /&gt;&lt;br /&gt;7) Abra o arquivo "parametros.txt". Para cada item que iniciar com -I (traço mais letra "i" maiúscula), faça:&lt;br /&gt;&lt;br /&gt;7.1) clique no botão "add";&lt;br /&gt;7.2) copie o diretório (sem o "-i") no campo "file name" (dica: se você usar control-X, ao invés de control-C, os diretórios vão sumindo do arquivo "parametros.txt", e aí você vai controlando quais você já fez);&lt;br /&gt;7.3) clique no botão "select";&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPXqVWp0BI/AAAAAAAAAFg/-0oeh1wd7K8/s1600-h/tela07.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPXqVWp0BI/AAAAAAAAAFg/-0oeh1wd7K8/s400/tela07.png" alt="" id="BLOGGER_PHOTO_ID_5229760714593914898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPXqsKq5KI/AAAAAAAAAFo/OcMWvZgHHi0/s1600-h/tela08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPXqsKq5KI/AAAAAAAAAFo/OcMWvZgHHi0/s400/tela08.png" alt="" id="BLOGGER_PHOTO_ID_5229760720717669538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ao final, clique "OK".&lt;br /&gt;&lt;br /&gt;8) Clique em "Apply".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPXq4FYrkI/AAAAAAAAAFw/WdPnFgdbCr8/s1600-h/tela09.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPXq4FYrkI/AAAAAAAAAFw/WdPnFgdbCr8/s400/tela09.png" alt="" id="BLOGGER_PHOTO_ID_5229760723916729922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;9) Clique em "linker", ainda debaixo de "build". Depois, "libraries" embaixo de "libraries".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SJPYJJ3BgTI/AAAAAAAAAF4/vZXeBOCSuoA/s1600-h/tela10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SJPYJJ3BgTI/AAAAAAAAAF4/vZXeBOCSuoA/s400/tela10.png" alt="" id="BLOGGER_PHOTO_ID_5229761244084404530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;10) Clique em "add option". Na janela que vai abrir, escolha "other option".&lt;br /&gt;&lt;br /&gt;11) Copie o resto do conteúdo do arquivo "parametros.txt" (itens que começam com "-l", traço mais letra éle minúscula) para esta janela, INCLUINDO os "-l".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPYJqcwwnI/AAAAAAAAAGA/vd3fmqTiaMc/s1600-h/tela11.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPYJqcwwnI/AAAAAAAAAGA/vd3fmqTiaMc/s400/tela11.png" alt="" id="BLOGGER_PHOTO_ID_5229761252832625266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPYJxbb92I/AAAAAAAAAGI/1x6HlmmFv-Q/s1600-h/tela13.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPYJxbb92I/AAAAAAAAAGI/1x6HlmmFv-Q/s400/tela13.png" alt="" id="BLOGGER_PHOTO_ID_5229761254706116450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;12) OK ... Apply ... OK&lt;br /&gt;&lt;br /&gt;13) Está pronto! Segue um pequeno programa GTK pra testar. Este programa gera uma janela vazia. Apesar da janela fechar quando clicamos no "x", o programa continua rodando, pois precisaríamos dotar o programa de uma resposta ao evento "fechar janela" (mas isso é papo pra depois...). Para fechar o programa, basta fechar o terminal que o NetBeans vai abrir para mostrar a janela.&lt;br /&gt;&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;#include stdio.h&lt;br /&gt;#include stdlib.h&lt;br /&gt;#include gtk/gtk.h&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:85%;" &gt;[ atenção!! colocar os sinais de menor e maior nas linhas acima!!!]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char** argv)&lt;br /&gt;{&lt;br /&gt;GtkWidget *window;&lt;br /&gt;&lt;br /&gt;gtk_init (&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;&lt;br /&gt;window = gtk_window_new (GTK_WINDOW_TOPLEVEL);&lt;br /&gt;gtk_window_set_title (GTK_WINDOW (window), "Alou, Mundo!!");&lt;br /&gt;gtk_widget_show (window);&lt;br /&gt;&lt;br /&gt;gtk_main ();&lt;br /&gt;return (EXIT_SUCCESS);&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Pronto! Seu projeto está preparado para compilar programas que utilizem a biblioteca GTK, tanto no modo Debug quanto no modo Release.&lt;br /&gt;&lt;br /&gt;Grande abraço!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4929459523773377666?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4929459523773377666/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4929459523773377666' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4929459523773377666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4929459523773377666'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-configurando-um.html' title='Netbeans 6.1 com C/C++ : Configurando um projeto para utilizar GTK'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SJPYrmINohI/AAAAAAAAAGQ/sSFYNo6Ffn4/s72-c/parametros.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4620859997130723890</id><published>2008-08-01T23:20:00.011-03:00</published><updated>2008-12-08T21:56:05.541-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Netbeans 6.1 com C/C++ : A diferença entre o modo Release e o modo Debug</title><content type='html'>.&lt;br /&gt;Você pode compilar seu projeto no NetBeans de duas formas diferentes: modo &lt;span style="font-style: italic;"&gt;Debug&lt;/span&gt; e modo &lt;span style="font-style: italic;"&gt;Release&lt;/span&gt;. A diferença entre eles é que no modo Debug seu projeto é compilado de uma forma que disponibiliza informações extras para permitir uma melhor avaliação do seu funcionamento e principalmente a caça de bugs (definição de pontos de parada na execução, verificação "on the fly" dos valores das variáveis, etc).&lt;br /&gt;&lt;br /&gt;Vamos verificar na prática. Crie um novo projeto:&lt;br /&gt;&lt;br /&gt;file | new project&lt;br /&gt;&lt;br /&gt;categories: c/c++&lt;br /&gt;projects: c/c++ application&lt;br /&gt;[next]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPE6P4mzOI/AAAAAAAAAEI/KlukkJyWWsw/s1600-h/telax01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPE6P4mzOI/AAAAAAAAAEI/KlukkJyWWsw/s400/telax01.png" alt="" id="BLOGGER_PHOTO_ID_5229740097282690274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;project name: teste&lt;br /&gt;[finish]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPE64RHFHI/AAAAAAAAAEQ/F3XQfF4FOsE/s1600-h/telax02.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPE64RHFHI/AAAAAAAAAEQ/F3XQfF4FOsE/s400/telax02.png" alt="" id="BLOGGER_PHOTO_ID_5229740108122887282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;O NetBeans cria, por default, um diretório com o nome do seu projeto debaixo do diretório NetBeansProjects. Utilize seu navegador de arquivos e confira que dentro deste diretório "teste" só tem um único subdiretório, denominado "nbproject".&lt;br /&gt;&lt;br /&gt;Vamos adicionar um arquivo com código-fonte em C:&lt;br /&gt;&lt;br /&gt;file | new file&lt;br /&gt;&lt;br /&gt;categories: c files&lt;br /&gt;file types: main C file&lt;br /&gt;[next]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPE7iTKFRI/AAAAAAAAAEY/PSjedHxZ8J8/s1600-h/telax03.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPE7iTKFRI/AAAAAAAAAEY/PSjedHxZ8J8/s400/telax03.png" alt="" id="BLOGGER_PHOTO_ID_5229740119405761810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Na próxima tela, apenas [finish]&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPE8XF2u4I/AAAAAAAAAEg/ZhgLLQwWmec/s1600-h/telax04.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SJPE8XF2u4I/AAAAAAAAAEg/ZhgLLQwWmec/s400/telax04.png" alt="" id="BLOGGER_PHOTO_ID_5229740133577046914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Digite o seguinte programa:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#include stdio.h&lt;stdio.h&gt;&lt;stdio.h\&gt;&lt;stdio.h&gt;&lt;br /&gt;#include stdlib.h&lt;br /&gt;        &lt;span style="font-weight: bold;font-size:85%;" &gt;[nota: alguém sabe pq o blogger não deixa usar maior e menor??]&lt;/span&gt;&lt;stdlib.h\&gt;&lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char** argv)&lt;br /&gt;{&lt;br /&gt;int A, B, C;&lt;br /&gt;&lt;br /&gt;A = 1;&lt;br /&gt;B = 2;&lt;br /&gt;C = 3;&lt;br /&gt;&lt;br /&gt;printf(" %d - %d - %d ", A, B, C);&lt;br /&gt;&lt;br /&gt;return (EXIT_SUCCESS);&lt;br /&gt;}&lt;/stdlib.h&gt;&lt;/stdlib.h\&gt;&lt;/stdio.h&gt;&lt;/stdio.h\&gt;&lt;/stdio.h&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPE9JaMaiI/AAAAAAAAAEo/EKBJ6sI3Cu4/s1600-h/telax05.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPE9JaMaiI/AAAAAAAAAEo/EKBJ6sI3Cu4/s400/telax05.png" alt="" id="BLOGGER_PHOTO_ID_5229740147084126754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A definição da forma de compilação é feita através do menu "build" :&lt;br /&gt;&lt;br /&gt;build | set main project configuration | Debug ou Release&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SJPFYCKdIrI/AAAAAAAAAEw/0cSF-Ybt4-w/s1600-h/telax06.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SJPFYCKdIrI/AAAAAAAAAEw/0cSF-Ybt4-w/s400/telax06.png" alt="" id="BLOGGER_PHOTO_ID_5229740608995533490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Escolha "release", e depois compile o projeto:&lt;br /&gt;&lt;br /&gt;build | build main project&lt;br /&gt;&lt;br /&gt;Utilize novamente o gerenciador de arquivos e olhe o interior do diretório "teste". Surgiram dois novos subdiretórios: "build" e "dist". No interior deste último, foi criado o diretório "release", contendo mais um subdiretório (gnu-linux-x86) e dentro dele o arquivo executável gerado por nossa compilação. O nome "release" não apareceu a toa, indica que compilamos nosso projeto no modo "release". Para finalizar esta etapa, anote o tamanho do arquivo executável que foi gerado (no meu caso, 6.3 KB).&lt;br /&gt;&lt;br /&gt;Volte ao NetBeans, e escolha o modo de compilação "debug":&lt;br /&gt;&lt;br /&gt;build | set main project configuration | Debug&lt;br /&gt;&lt;br /&gt;E novamente compile o projeto:&lt;br /&gt;&lt;br /&gt;build | build main project&lt;br /&gt;&lt;br /&gt;Vamos olhar novamente o interior do diretório "dist". Foi criado agora o diretório "Debug", contendo o executável gerado pela compilação no modo "Debug" (novamente dentro de gnu-linux-x86). Vejamos o tamanho do arquivo executável: 7.3 KB.&lt;br /&gt;&lt;br /&gt;Porque maior? Por que, como falei no início, no modo debug o executável é gerado com recursos extras que permitirão executar atividades de debug, tais como definição de pontos de parada, verificação do conteúdo das variáveis ENQUANTO O PROGRAMA ESTIVER RODANDO, etc.&lt;br /&gt;&lt;br /&gt;Vamos ver isso funcionando ao vivo e a cores: Vamos definir um ponto de parada. Isso é feito clicando no número da linha onde se deseja que a execução pare. Vamos clicar na linha 8, onde atribuímos o valor 1 à variável A. Vai aparecer uma caixinha vermelha onde antes era o número da linha, e toda a linha ficará destacada em vermelho. Isso indica que a execução vai parar ANTES da execução desta linha.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPFY46P6II/AAAAAAAAAE4/bAX7R4GywDY/s1600-h/telax07.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPFY46P6II/AAAAAAAAAE4/bAX7R4GywDY/s400/telax07.png" alt="" id="BLOGGER_PHOTO_ID_5229740623691507842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para executar o programa utilizando as informações extras de debug, utilize:&lt;br /&gt;&lt;br /&gt;run | debug main project&lt;br /&gt;&lt;br /&gt;A execução vai iniciar... e nada vai aparecer no terminal, porque o programa parou na linha que indicamos. Volte para a janela principal do NetBeans, e note o indicador estilo "supermáquina" ou "visor cylon" (depende da sua idade...) no canto inferior direito da janela. Isto indica que o programa está em execução, apenas está parado temporariamente. No código fonte, a linha onde o programa está parado fica verde.&lt;br /&gt;&lt;br /&gt;Ainda olhando para o canto inferior direito da janela, note uma caixa com as variáveis A, B, C e seus valores, que devem ser os mais loucos possíveis. Isso acontece porque paramos o programa em um momento em que as variáveis foram criadas, mas nenhum valor foi (ainda) atribuído a elas, ou seja, elas estão com os valores aleatórios que toda variável em C recebe assim que é criada (na verdade, a variável não "recebe" nada; ela é associada a uma posição de memória que está com um valor qualquer, ou aleatório gerado quando o computador foi ligado, ou deixado por algum programa anterior).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPFZTLXQJI/AAAAAAAAAFA/7HGZ8reMCvE/s1600-h/telax08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SJPFZTLXQJI/AAAAAAAAAFA/7HGZ8reMCvE/s400/telax08.png" alt="" id="BLOGGER_PHOTO_ID_5229740630742614162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Um dos recursos disponíveis para nós é a execução passo-a-passo do programa. Podemos mandar o NetBeans executar a próxima linha, e verificar as mudanças nos valores das variáveis (e desta forma, avaliar se o programa está fazendo as coisas corretamente!). Para isso, clique no botão com uma caixa azul e uma seta amarela apontando para baixo (o tooltip indica "step into"), ou vá no menu run | step into, ou simplesmente tecle F7.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPFbRpZGAI/AAAAAAAAAFI/dSBBVbDLbq8/s1600-h/telax09.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SJPFbRpZGAI/AAAAAAAAAFI/dSBBVbDLbq8/s400/telax09.png" alt="" id="BLOGGER_PHOTO_ID_5229740664691431426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A linha verde avançou para a próxima linha, isto é, ele executou o "A = 1". Isto também pode ser notado pela alteração do valor da variável A no box de variáveis.&lt;br /&gt;&lt;br /&gt;Pode-se prosseguir assim passo a passo, ou pode-se mandar continuar a execução normalmente (teclando F5, clicando no botão com a seta "play" verde, ou menu run | continue). Note que podemos definir vários pontos de parada no programa.&lt;br /&gt;&lt;br /&gt;Mais um teste para finalizar: mude o modo de compilação para "release":&lt;br /&gt;&lt;br /&gt;build | set main project configurarion | release&lt;br /&gt;&lt;br /&gt;Não precisamos recompilar, pois não mudamos o programa desde que geramos a versão release no início deste post. Vamos então tentar rodar esta versão release no modo debug:&lt;br /&gt;&lt;br /&gt;run | debug main project&lt;br /&gt;&lt;br /&gt;Necas! Ele ignorou nosso ponto de parada, pois o executável do tipo &lt;span style="font-style: italic;"&gt;Release&lt;/span&gt; não está preparado para realizar debug.&lt;br /&gt;&lt;br /&gt;Um último comentário, a janela de variáveis é bem interessante, pois mostra o conteúdo de membros de estruturas, valores de ponteiros, até mesmo valores de áreas alocadas dinamicamente (simulando um vetor a partir do ponteiro com o endereço inicial). Enfim, um recurso bem interessante pra quem não aguenta mais ficar colocando 'printf' no meio do programa.... (e geralmente esquecendo de tirar alguns deles no final!!)&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4620859997130723890?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4620859997130723890/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4620859997130723890' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4620859997130723890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4620859997130723890'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/08/netbeans-61-com-cc-diferena-entre-o.html' title='Netbeans 6.1 com C/C++ : A diferença entre o modo Release e o modo Debug'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YcnKHahXCEc/SJPE6P4mzOI/AAAAAAAAAEI/KlukkJyWWsw/s72-c/telax01.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4695535083479873427</id><published>2008-06-11T17:18:00.003-03:00</published><updated>2008-06-11T17:23:07.446-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pesquisa científica'/><title type='text'>Referências bibliográficas</title><content type='html'>.&lt;br /&gt;Está naquela parte "deliciosa" do trabalho, geralmente no fim, com prazo estoura(n)do, de montagem da lista de referências bibliográficas? Aí descobriu que algumas referências você tem apenas aquela cópia xerox mal-tirada, onde esqueceu de anotar editora, cidade, ano... talvez até o título? Ou então você tem tudo isso, mas está em dúvida em como aplicar as normas?&lt;br /&gt;&lt;br /&gt;Bem, segue uma dica: vá no Santo Oráculo (&lt;span style="font-style: italic;"&gt;Sanctvs Googlus&lt;/span&gt;) e pesquise por:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;+bibliografia +autor +autor2 +palavra-do-título&lt;/blockquote&gt;... ou o que mais você souber sobre o trabalho. Se for uma palavra, use "+". Se for uma frase, use "+" e aspas: +"efeitos termodinâmicos do rabo da lagartixa".&lt;br /&gt;&lt;br /&gt;O Google provavelmente vai te retornar uma lista de trabalhos acadêmicos (ou não...) disponibilizados na Web, em especial a seção "Bibliografia" dos mesmos...&lt;br /&gt;&lt;br /&gt;Consulte a referência desejada, e tire suas dúvidas!!&lt;br /&gt;&lt;br /&gt;Mas por favor, faça um favor a si mesmo: não banque o esperto-chupão-mané e apenas copie a referência... gaste um tempinho pra tentar aprender como foi feita. Afinal de contas, o motivo pelo qual você está fazendo seu trabalho é o de aumentar o conhecimento... ou não é??&lt;br /&gt;&lt;br /&gt;Se não for, está perdendo seu tempo!&lt;br /&gt;&lt;br /&gt;E já que estamos falando sobre normas, segue um link muito bom sobre o tema.&lt;br /&gt;&lt;a href="http://www.rc.unesp.br/biblioteca/normasabnt.php"&gt;http://www.rc.unesp.br/biblioteca/normasabnt.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4695535083479873427?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4695535083479873427/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4695535083479873427' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4695535083479873427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4695535083479873427'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/06/referncias-bibliogrficas.html' title='Referências bibliográficas'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3595744053762641614</id><published>2008-06-04T10:10:00.006-03:00</published><updated>2010-11-12T20:51:25.974-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geoprocessamento'/><category scheme='http://www.blogger.com/atom/ns#' term='mestrado'/><title type='text'>Dissertação de mestrado</title><content type='html'>&lt;span style="font-size:85%;"&gt;.&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;O geoprocessamento como ferramenta para estudos sociológicos: O caso da relação de influência entre urbanização e o perfil de capital cultural dos vestibulandos da UNESP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Resumo:&lt;br /&gt;&lt;br /&gt;A proposta deste trabalho é contribuir para uma nova forma transdisciplinar de pensamento, construindo uma interface entre a computação e a sociologia, mostrando como técnicas computacionais de análise de dados podem contribuir para auxiliar na inserção da dimensão espacial nos estudos sociológicos. Com esse objetivo, busca-se estudar a relação de influência que o grau de urbanização das cidades e regiões exerce sobre o perfil de capital cultural dos alunos ingressantes em diversos cursos de uma mesma carreira, localizados em diversos campi da UNESP, espalhados pelo interior do Estado de São Paulo.&lt;br /&gt;&lt;br /&gt;Arquivos:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3NWE2YjgzMmEtOTNmMS00ZDU2LWFlNzMtYjhjN2Q2OTdkZDdi&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capa&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3OGY1Mzc3Y2YtZjYzMS00YTQ2LWI3MjAtNDdiYjE4MzM1YzBh&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 1&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3OTc2YTE5N2EtMDRjYi00ZDBjLTk1M2MtYTlmMDY2MmVmMTEz&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 2&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3Y2UyMzU3OGItNDIzOC00ODFhLTkyMDQtM2Y3OWMzNTExNGNm&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 3 - parte 1&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3NzI4M2I3ODctN2RkMC00NWMwLThhZjQtMjc0NTYwYWJhOWVh&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 3 - parte 2&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3ZWYxMjM3YzctYTY5MS00NmQ1LTljOWQtYWY5OWI0NWJhNDY1&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 4&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3Nzg1OTAwYTAtNWExNC00MGEwLTllNjUtNjk4YTdkMTk5MGY2&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Capítulo 5 - Bibilografia - Anexo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0BxADg9hLk6J3Y2FjNzRjZmItOTA0NC00MGE2LTg4ZDktZjg3Njc3NjMwNmZm&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Apresentação (slides)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Este trabalho está sendo disponibilizado pela mesma licença que governa este Blog:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"&gt;&lt;img alt="Creative Commons License" style="border-width: 0pt; width: 154px; height: 54px;" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.pt" rel="license"&gt;Creative Commons Attribution Noncommercial Share Alike 3.0 Unported License&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3595744053762641614?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3595744053762641614/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3595744053762641614' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3595744053762641614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3595744053762641614'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/06/dissertao-de-mestrado.html' title='Dissertação de mestrado'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-729449401603463924</id><published>2008-05-28T19:02:00.008-03:00</published><updated>2008-12-08T21:56:05.846-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Até o Dalai (tux) Lama sumiu...</title><content type='html'>.&lt;br /&gt;Publiquei aqui anteriormente um &lt;a href="http://starfightercarlao.blogspot.com/2008/04/trocentas-mil-imagens-do-tux.html"&gt;post&lt;/a&gt; falando de um site muito legal, com trolhocentas imagens do &lt;a href="http://en.wikipedia.org/wiki/Tux"&gt;TUX&lt;/a&gt; em várias fantasias e poses, imagens muito bem elaboradas. Para ilustrar o post, coloquei uma imagem do "dalai-tux-lama", que carregava uma bandeirinha "free Tibet".&lt;br /&gt;&lt;br /&gt;Pois bem, olha só que coisa no mínimo esquisita.... estou eu preparando uma palestra sobre software livre, quando me lembrei desta figura para ilustrar o slide sobre as 4 liberdades. Fui no site, e para minha surpresa.... o dalai-tux sumiu!!!&lt;br /&gt;&lt;br /&gt;Bem, teorias da conspiração a parte, consegui (re) encontrar o arquivo original (em alta resolução) do dalai-tux na net, neste &lt;a href="http://forum.ubuntu.org.cn/viewtopic.php?t=121328&amp;amp;sid=4682dff24be27cae7ae1569c0e9869cd"&gt;link&lt;/a&gt; (quando acessar, vá para o fim da página, onde você vai encontrar a figura. O link que aparece em cima é o link original, o mesmo que foi exilado...).&lt;br /&gt;&lt;br /&gt;Já baixei o arquivo, e vai ficar guardadinho aqui, para o caso dele "sumir" de novo...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_YcnKHahXCEc/SD3aaJPTZPI/AAAAAAAAACQ/q3IfvLpqRX4/s1600-h/brunocb-dalai-tux-lama.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 206px; height: 206px;" src="http://3.bp.blogspot.com/_YcnKHahXCEc/SD3aaJPTZPI/AAAAAAAAACQ/q3IfvLpqRX4/s320/brunocb-dalai-tux-lama.png" alt="" id="BLOGGER_PHOTO_ID_5205556887001720050" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.freetibet.org/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_YcnKHahXCEc/SD3beZPTZQI/AAAAAAAAACY/wWbH7gYM_nM/s400/logo.png" alt="" id="BLOGGER_PHOTO_ID_5205558059527791874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.freetibet.org/"&gt;&lt;span style="font-size:78%;"&gt;link&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pt.wikipedia.org/wiki/Namaste"&gt;Namastê!!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-729449401603463924?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/729449401603463924/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=729449401603463924' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/729449401603463924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/729449401603463924'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/at-o-dalai-tux-lama-sumiu.html' title='Até o Dalai (tux) Lama sumiu...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_YcnKHahXCEc/SD3aaJPTZPI/AAAAAAAAACQ/q3IfvLpqRX4/s72-c/brunocb-dalai-tux-lama.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6457960443712194741</id><published>2008-05-27T19:07:00.004-03:00</published><updated>2008-05-27T19:12:11.441-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Resposta</title><content type='html'>&lt;span style="font-size:180%;"&gt;&lt;span style="font-family:georgia;"&gt;.&lt;br /&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dwar Ev soldou solenemente a junção final com ouro. A objetiva de uma dúzia de câmeras de televisão se concentrava nele, transmitindo a todo o universo doze enquadramentos diferentes do que estava fazendo.&lt;br /&gt;&lt;br /&gt;Endireitou o corpo e acenou com a cabeça para Dwar Reyn, indo depois ocupar a posição prevista, ao lado da chave que completaria o contato quando fosse ligada. E que acionaria, simultaneamente, todos os gigantescos computadores da totalidade dos planetas habitados do universo inteiro - noventa e seis bilhões de planetas - ao supercircuito que, por sua vez, ligaria todos eles a uma supercalculadora, máquina cibernética capaz de combinar o conhecimento integral de todas as galáxias.&lt;br /&gt;&lt;br /&gt;Dwar Reyn dirigiu palavras aos trilhões de telespectadores. Depois de um momento de silêncio, deu a ordem:&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;Agora&lt;/span&gt;, Dwar Ev!&lt;br /&gt;&lt;br /&gt;Dwar Ev ligou a chave. Ouviu-se um zumbido fortíssimo, o surto de energia proveniente de noventa e seis bilhões de planetas. As luzes se acenderam e apagaram por todo o painel de quilômetros de extensão.&lt;br /&gt;&lt;br /&gt;Dwar Ev recuou um passo e respirou fundo.&lt;br /&gt;&lt;br /&gt;- A honra de formular a primeira pergunta é sua, Dwar Reyn.&lt;br /&gt;&lt;br /&gt;- Obrigado - dissse dwar Reyn - Será uma pergunta que nenhuma máquina cibernética foi capaz de responder até hoje.&lt;br /&gt;&lt;br /&gt;Virou-se para o computador.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;- Deus existe?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A voz &lt;a href="http://www.hostdime.com.br/dicionario/tonitruante.html"&gt;tonitruante&lt;/a&gt; respondeu sem hesitação, sem se ouvir o estalo de um único &lt;a href="http://pt.wikipedia.org/wiki/Rel%C3%A9"&gt;relé&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;- Sim, &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;agora&lt;/span&gt;&lt;span style="font-size:130%;"&gt; Deus existe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O rosto de Dwar Ev ficou tomado de súbito pavor. Saltou para desligar a chave de novo. Um raio fulminante, caído de um céu sem nuvens, o acertou em cheio e deixou a chave ligada para sempre.    &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-family:georgia;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;BROWN, Fredric. "Resposta", in WARRICK, P.S. e GREENBERG, M.W. (org.), Máquinas que pensam - Obras-primas da Ficção Científica. Porto Alegre, L&amp;amp;PM, 1985. pp.364-65.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Consultado em: TENÓRIO, R.M. Computadores de Papel: máquinas abstratas para um ensino concreto. São Paulo: Cortez, 1991.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6457960443712194741?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6457960443712194741/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6457960443712194741' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6457960443712194741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6457960443712194741'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/resposta.html' title='Resposta'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-134225182813218924</id><published>2008-05-24T18:15:00.007-03:00</published><updated>2008-09-12T20:53:42.087-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pesquisa científica'/><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><title type='text'>Informação científica livre</title><content type='html'>.&lt;br /&gt;Da série "imagine a cena": Você está trabalhando, ou na sua tese, ou na sua dissertação, ou na monografia da especialização, ou mesmo no dia-a-dia da sua pesquisa. Você vai no santo oráculo, vulgo "google", digita os termos da sua pesquisa, e aí esbarra naquele artigo científico maravilhoso (pelo menos julgando pelo título...). Clica todo contente.... e é levado para um site comercial, onde o artigo que você quer (de umas, sei lá, 10 páginas?) está A VENDA por módicos 30 ou 40 DÓLARES!!&lt;br /&gt;&lt;br /&gt;Depois que passar a raiva, o que fazer? Sacar o cartão de crédito?&lt;br /&gt;&lt;br /&gt;Bem, siga essa pequeniníssima dica, comigo está funcionando 95% das vezes. Pegue o título inteiro do artigo, volte a São Google, e pesquise o título, ENTRE ASPAS, assim ó:&lt;br /&gt;&lt;br /&gt;"Geography matters: Kohonen classification of determinants of foreign direct investment in transition economies"&lt;br /&gt;&lt;br /&gt;Garanto que você encontra numas das 3 primeiras páginas do resultado do Google ....&lt;br /&gt;&lt;br /&gt;Salve, imprima, leia, e saboreie mais esse momento de vingança!! :-)&lt;br /&gt;&lt;br /&gt;A propósito, aconteceu comigo uma coisa engraçada com relação a isso: Estava eu pesquisando um tema, quando encontrei um artigo que estava, como na maioria das vezes, a venda. Encontrei também o mesmo artigo citado no site da HP americana, onde dizia: "o artigo não está disponível por motivo de copyright"...  Continuando a pesquisar, tive a alegria de encontrar o PDF do mesmo, inteirinho, no site da HP... da Índia!!!&lt;br /&gt;&lt;br /&gt;Pra finalizar, deixo uma questão para reflexão: Será que &lt;a href="http://en.wikipedia.org/wiki/Isaac_Newton"&gt;Newton&lt;/a&gt; teve que pagar 40 dólares para poder &lt;a href="http://www.quotedb.com/quotes/3102"&gt;subir nos ombros de gigantes&lt;/a&gt; ?&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-134225182813218924?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/134225182813218924/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=134225182813218924' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/134225182813218924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/134225182813218924'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/informao-cientfica-livre.html' title='Informação científica livre'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4640917239665780725</id><published>2008-05-19T17:19:00.004-03:00</published><updated>2008-05-19T17:30:28.360-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Polícia federal caçando criminosos perigosíssimos!! Quem faz legenda para seriados...</title><content type='html'>.&lt;br /&gt;Foi noticiado pela Folha de São Paulo que a Polícia Federal vai realizar uma "caça" intensa contra sites de legendas de seriados.&lt;br /&gt;&lt;br /&gt;Neste &lt;a href="http://info.abril.com.br/blog/internetbuzz/20080519_listar.shtml"&gt;link&lt;/a&gt;, tem um post bem interessante sobre isso, do &lt;a href="http://info.abril.com.br/blog/internetbuzz/"&gt;blog&lt;/a&gt; da Sandra Carvalho. Só quero enfatizar um parágrafo aqui (o resto ' cês lê no original):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Bem, a luta contra o crime organizado, os traficantes e os corruptos deve estar indo muito bem, para a PF ter tempo de se voltar contra redes online de jovens tradutores que se unem para legendar em horas seriados baixados da internet porque demoram séculos para passar no Brasil."&lt;/blockquote&gt;&lt;br /&gt;Só mais umazinha:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"O que não é realista é misturar essa garotada que traduz seriados e distribui legendas gratuitamente com grupos criminosos que exploram comercialmente, aos milhões, cópias ilegais de grandes sucessos de Hollywood."&lt;/blockquote&gt;&lt;br /&gt;Abraços!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4640917239665780725?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4640917239665780725/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4640917239665780725' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4640917239665780725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4640917239665780725'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/polcia-federal-caando-criminosos.html' title='Polícia federal caçando criminosos perigosíssimos!! Quem faz legenda para seriados...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7035983616783573291</id><published>2008-05-14T10:39:00.002-03:00</published><updated>2008-12-08T21:56:06.060-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Motivação...</title><content type='html'>.&lt;br /&gt;Esta é a garrafa de água que me acompanha nos estudos...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SCrsIkM77XI/AAAAAAAAACI/M5wb1fk61VU/s1600-h/jackdaniels.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SCrsIkM77XI/AAAAAAAAACI/M5wb1fk61VU/s320/jackdaniels.jpg" alt="" id="BLOGGER_PHOTO_ID_5200228351653703026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;É possível motivação melhor ??   :-)  :-)  :-)&lt;br /&gt;&lt;br /&gt;Abraços!!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7035983616783573291?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7035983616783573291/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7035983616783573291' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7035983616783573291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7035983616783573291'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/motivao.html' title='Motivação...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/SCrsIkM77XI/AAAAAAAAACI/M5wb1fk61VU/s72-c/jackdaniels.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-5936517301637941449</id><published>2008-05-13T11:47:00.004-03:00</published><updated>2008-05-13T11:52:26.593-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Delírios de quem está no meio-para-o-fim da tese...</title><content type='html'>.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;AH! OS RELÓGIOS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Amigos, não consultem os relógios&lt;br /&gt;quando um dia eu me for de vossas vidas&lt;br /&gt;em seus fúteis problemas tão perdidas&lt;br /&gt;que até parecem mais uns necrológios...&lt;br /&gt;&lt;br /&gt;Porque o tempo é uma invenção da morte:&lt;br /&gt;não o conhece a vida - a verdadeira -&lt;br /&gt;em que basta um momento de poesia&lt;br /&gt;para nos dar a eternidade inteira.&lt;br /&gt;&lt;br /&gt;Inteira, sim, porque essa vida eterna&lt;br /&gt;somente por si mesma é dividida:&lt;br /&gt;não cabe, a cada qual, uma porção.&lt;br /&gt;&lt;br /&gt;E os Anjos entreolham-se espantados&lt;br /&gt;quando alguém - ao voltar a si da vida -&lt;br /&gt;acaso lhes indaga que horas são...&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Mario Quintana - A Cor do Invisível&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Mais &lt;a href="http://www.fabiorocha.com.br/mario.htm"&gt;aqui&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Abraços rápidos, o tempo urge!!!  :-)&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-5936517301637941449?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/5936517301637941449/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=5936517301637941449' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5936517301637941449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5936517301637941449'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/delrios-de-quem-est-no-meio-para-o-fim.html' title='Delírios de quem está no meio-para-o-fim da tese...'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-8644864753634243388</id><published>2008-05-12T16:40:00.009-03:00</published><updated>2008-09-12T21:00:13.461-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Folders no Gmail</title><content type='html'>.&lt;br /&gt;Você já se perguntou alguma vez, apurrinhado, porque o Gmail não tem folders para categorizar as mensagens que você quer guardar?&lt;br /&gt;&lt;br /&gt;Aí procurou no help, onde eles dizem que "não precisa de folders.... você pode pesquisar nas mensagens e encontrar a mensagem desejada"...  ok, ok.... &lt;span style="font-weight: bold;"&gt;Mas eu quero folders&lt;/span&gt;, PÔ!!&lt;br /&gt;&lt;br /&gt;Bem, a boa notícia é que.... o Gmail tem folders! Tudo bem, não são folders reais, mas o efeito final é o mesmo!&lt;br /&gt;&lt;br /&gt;Simples, onde você criaria folders, crie LABELS (ou provavelmente "etiquetas", não sei bem, meu gmail está em inglês. Cês vê aí!). Crie um label para cada "folder" que você adoraria ter....  O próximo passo, obviamente, é associar a cada mensagem o seu label correspondente.&lt;br /&gt;&lt;br /&gt;Aí você vai dizer: "mas elas vão ficar todas no meu inbox, misturadas!!" Calma. Agora vem o pulo do gato.... &lt;span style="font-weight: bold;"&gt;use o recurso "archive"&lt;/span&gt;!! Elas vão sair do seu inbox, e ficar (ainda misturadas) num itenzinho que talvez muitos não tenham percebido no menu da esquerda, chamado "all mail".&lt;br /&gt;&lt;br /&gt;Aí você, já impaciente comigo, faz a pergunta final: "mas elas vão continuar misturadas no all mail!!" Ao que eu respondo, você não vai acessar elas pelo all mail, mas sim pelo &lt;span style="font-weight: bold;"&gt;LABEL&lt;/span&gt; que você criou. Basta clicar no nome do label, e o gmail vai mostrar apenas as mensagens classificadas sob aquele label!!&lt;br /&gt;&lt;br /&gt;Finja que é um folder, e seja feliz....  :-)&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-8644864753634243388?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/8644864753634243388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=8644864753634243388' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8644864753634243388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8644864753634243388'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/folders-no-gmail.html' title='Folders no Gmail'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6880183787747989139</id><published>2008-05-10T13:09:00.007-03:00</published><updated>2008-09-12T21:01:32.270-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>"Hello World", programas ....   e classes de problemas!</title><content type='html'>.&lt;br /&gt;Todo programador conhece o programa do tipo "&lt;a href="http://en.wikipedia.org/wiki/Hello_world"&gt;hello world&lt;/a&gt;!". É um tipo de programa que ilustra a forma mais simples, numa linguagem de programação específica, de mostrar na tela a frase "Hello World!". Por exemplo, em C:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int main(void)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    printf("Hello, World!\n");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Qual a utilidade de um programa tão xexelento? Simples, sua execução correta prova que o programador (geralmente aprendiz) consegue realizar os passos mínimos necessários para desenvolver qualquer programa, numa linguagem de programação específica: editar um arquivo texto com o código-fonte do programa, compilar este arquivo, linkeditar as bibliotecas e finalmente executar o programa.&lt;br /&gt;&lt;br /&gt;Isso serve pra qualquer linguagem: &lt;a href="http://www.javafree.org/javabb/viewtopic.jbb?t=857778"&gt;Java&lt;/a&gt;, &lt;a href="http://snippets.dzone.com/posts/show/2004"&gt;C++&lt;/a&gt;, &lt;a href="http://www.engin.umd.umich.edu/CIS/course.des/cis400/pascal/hworld.html"&gt;Pascal&lt;/a&gt;, &lt;a href="http://www2.latech.edu/%7Eacm/helloworld/fortran.html"&gt;Fortran&lt;/a&gt;, &lt;a href="http://www.engin.umd.umich.edu/CIS/course.des/cis400/cobol/hworld.html"&gt;Cobol&lt;/a&gt;, &lt;a href="http://www.engin.umd.umich.edu/CIS/course.des/cis400/basic/hellow.html"&gt;Basic&lt;/a&gt;, &lt;a href="http://www2.latech.edu/%7Eacm/helloworld/pl1.html"&gt;PL/1&lt;/a&gt;, &lt;a href="http://php.about.com/od/learnphp/qt/hello_world.htm"&gt;PHP&lt;/a&gt;, &lt;a href="http://python.about.com/od/gettingstarted/ss/helloworld.htm"&gt;Python&lt;/a&gt;... até &lt;a href="http://www.roesler-ac.de/wolfram/hello.htm#Assembler-Linux"&gt;Assembler&lt;/a&gt;!   (clique &lt;a href="http://www.roesler-ac.de/wolfram/hello.htm"&gt;aqui&lt;/a&gt; para uma coleção completa)&lt;br /&gt;&lt;br /&gt;Mas não é só relativamente a linguagens de programação que encontramos programas "hello world"... Tenho encontrado na Internet uma referência a programas desse tipo relativos a uma &lt;span style="font-weight: bold;"&gt;classe&lt;/span&gt; de problemas específicos! A analogia seria "o programa mais básico, que resolve a forma mais básica do problema em questão".&lt;br /&gt;&lt;br /&gt;Dois exemplos que encontrei:&lt;br /&gt;&lt;br /&gt;- "hello world" para redes neurais: treinar uma rede para aprender a porta lógica &lt;a href="http://neuralpad.org/tutorials.php"&gt;XOR&lt;/a&gt;;&lt;br /&gt;&lt;br /&gt;- "hello world" para redes neurais auto-organizáveis (Kohonen): agrupar por similaridade um conjunto de cores aleatórias.&lt;br /&gt;&lt;br /&gt;Você conhece outros "hello world" aplicados a problemas específicos? Se sim, deixe seu comentário, e vamos atualizar esta lista!&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;PS: essa história toda de "hello world" me lembrou de uma piadinha.... :-)&lt;br /&gt;&lt;br /&gt;Como os programadores matam um dragão?&lt;br /&gt;&lt;br /&gt;Java:Chega, encontra o dragao. Desenvolve um framework para aniquilamento de dragoes em multiplas camadas. Escreve varios artigos sobre o framework mas nao mata o dragao.&lt;br /&gt;&lt;br /&gt;.Net:Chega, olha a ideia do Javanes e a copia, tenta matar o dragao, mas e comido pelo reptil.&lt;br /&gt;&lt;br /&gt;C:Chega, olha para o dragao com olhar de desprezo, puxa seu canivete, degola o dragao. Encontra a princesa, mas a ignora para ver os ultimos checkins no cvs do kernel do linux&lt;br /&gt;&lt;br /&gt;C++:Cria um canivete basico e vai juntando funcionalidades ate ter uma espada complexa que apenas ele consegue entender ... Mata o dragao mas trava no meio da ponte por causa dos memory leaks&lt;br /&gt;&lt;br /&gt;COBOL:Chega, olha o dragao, pensa que ta velho demais para conseguir matar um bicho daquele tamanho e pegar a princesa e, entao, vai embora.&lt;br /&gt;&lt;br /&gt;Pascal:Se prepara durante 10 anos para criar um sistema de aniquilamento de dragao...Chegando la descobre que o programa so' aceita lagartixas como entrada.&lt;br /&gt;&lt;br /&gt;VB:Monta uma arma de destruicao de dragoes a partir de varios componentes, parte pro pau, pra cima do dragao e, na hora H, descobre que a espada so funciona durante noites chuvosas...&lt;br /&gt;&lt;br /&gt;PL/SQL:Coleta dados de outros matadores de dragao, cria tabelas com N relacionamentos complexidade ternaria, dados em 3 dimensoes, OLAP, demora 15 anos para processar a informacao. Enquanto isso a princesa virou lesbica.&lt;br /&gt;&lt;br /&gt;Ruby:Chega com uma p*t* fama, falando que e o melhor faz tudo, quando vai enfrentar o dragao mostra um videozinho dele matando um dragao ... O dragao come ele de tedio.&lt;br /&gt;&lt;br /&gt;Smalltalk:Chega, analisa o dragao e a princesa, vira as costas e vai embora, pois eles sao muito inferiores.&lt;br /&gt;&lt;br /&gt;Shell:Cria uma arma poderosa para matar os dragoes, mas, na hora H, nao se lembra como usa-la.&lt;br /&gt;&lt;br /&gt;Shell(2):O cara chega no dragao com um script de 2 linhas que mata, corta, stripa, empala, pica em pedacinhos e empalha o bicho, mas na hora q ele roda o script aumenta, engorda, enfurece, e coloca alcool no fogo do dragao.&lt;br /&gt;&lt;br /&gt;ASSEMBLY:Acha que ta fazendo o mais certo e enxuto, porem troca um A por D, mata a princesa e transa com o dragao&lt;br /&gt;&lt;br /&gt;Fortran:Chega desenvolve uma solucao com 45000 linhas de codigo, mata o dragao vai ao encontro da princesa ... mas esta o chama de tiozinho e sai correndo atras do programador java que era elegante e ficou rico.&lt;br /&gt;&lt;br /&gt;FOX PRO:Desenvolve um sistema para matar o dragao, por fora e bonitinho e funciona, mas por dentro esta tudo remendado, quando ele vai executar o aniquilador de dragoes lembra que esqueceu de indexar os DBF.&lt;br /&gt;&lt;br /&gt;ANALISTA DE PROCESSOS:Chega ao dragao com duas toneladas de documentacao desenvolvida sobre o processo de se matar um dragao generico, desenvolve um fluxograma super complexo para libertar a princesa e se casar com ela, convence o dragao que aquilo vai ser bom pra ele, e que nao sera doloroso. Ao executar o processo ele estima o esforco e o tamanho do estrago que isso vai causar, a assinatura do papa, do buda e do Raul Seixas para o plano, e entao compra 2 bombas nucleares, 45 canhoes, 1 porta avioes, contrata 300 homens armados ate os dentes, quando na verdade necessitaria apenas da espada que estava na sua mao o tempo todo.&lt;br /&gt;&lt;br /&gt;CLIPPER:Monta uma rotina que carrega um array de codeblocks para insultar o dragao, cantar a princesa, carregar a espada para memoria, moer o dragao, limpar a sujeira, lascar leite condensado com morangos na princesa gostosa, transar com aprincesa, tomar banho, ligar o carro, colocar gasolina e voltar para casa. Na hora de rodar recebe um "Bound Error: Array Access" e o dragao come ele com farinha.&lt;span style="color: rgb(255, 255, 51);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6880183787747989139?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6880183787747989139/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6880183787747989139' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6880183787747989139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6880183787747989139'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/hello-world-programas-e-problemas.html' title='&quot;Hello World&quot;, programas ....   e classes de problemas!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3184044797291846250</id><published>2008-05-09T11:48:00.005-03:00</published><updated>2008-12-08T21:56:06.401-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Gerando uma saída gráfica... sem complicações!</title><content type='html'>.&lt;br /&gt;Imagine a cena: Você está estudando algum algoritmo, por exemplo o método de aprendizado de alguma rede neural. Resolveu programar o dito cujo na sua linguagem preferida, pra treinar e ver "na real" os resultados. Lá pelas tantas deu aquela vontade de gerar uma saída gráfica...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;[ modo naftalina ON ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Leitores com menos de 30 anos não precisam ler esse trecho&lt;/span&gt; - Nessa hora deu aquela saudade do velho BASIC do TK2000 ( clone do Apple ][ ), onde comandos como HGR, HCOLOR, HPLOT e HLIN resolviam sua vida?  :-)&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;[ modo naftalina OFF ]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Soluções possíveis:&lt;br /&gt;&lt;br /&gt;- usar um toolkit gráfico, tipo &lt;a href="http://www.gtk.org/"&gt;GTK&lt;/a&gt;, QT, WxWidgets... porém você não tem tempo pra isso!&lt;br /&gt;&lt;br /&gt;- usar uma biblioteca gráfica mais simples: futucando na net, encontrei a &lt;a href="http://morihit.net/ezxdisp/"&gt;EZXDISP&lt;/a&gt;. Me pareceu bem facinha. Mas... mesmo assim, não estava afim de gastar tempo estudando outra API.&lt;br /&gt;&lt;br /&gt;Sobrou então....&lt;br /&gt;&lt;br /&gt;- gerar um arquivo no formato &lt;a href="http://en.wikipedia.org/wiki/HPGL"&gt;HPGL&lt;/a&gt;!  O formato de saída gráfica HPGL foi inventado para controlar as &lt;a href="http://pt.wikipedia.org/wiki/Plotter"&gt;plotters&lt;/a&gt; da HP, nos idos de lá-vai-fumaça. O legal deste formato de arquivo é que ele é do tipo &lt;span style="font-weight: bold;"&gt;texto&lt;/span&gt;, ou seja, você não precisará de nenhuma biblioteca especial no seu programa para gerar a saída gráfica... basta gerar um arquivo texto, e inserir dentro dele alguns &lt;a href="http://cstep.luberth.com/HPGL.pdf"&gt;comandos de desenho&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;O pequeno problema desta solução é que você vai ter que pensar como um ploter, ou seja, pra desenhar uma linha reta você vai precisar:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;- mover a caneta para a posição inicial&lt;br /&gt;- abaixar a caneta&lt;br /&gt;- mover a caneta para a posição final&lt;br /&gt;- levantar a caneta&lt;/blockquote&gt;&lt;br /&gt;Vejam um pequeno "hello world" em HPGL (arquivo extensão .plt):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;IN;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;br /&gt;inicializar a trapizonga&lt;/span&gt;&lt;br /&gt;IP;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;define o ponto de origem do desenho (0,0)&lt;/span&gt;&lt;br /&gt;SC0,100,0,100;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;define a escala do desenho&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;SP1;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;select pen 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;PU0,0;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;move a caneta para o ponto inicial&lt;/span&gt;&lt;br /&gt;PD100,0,100,100,0,100,0,0;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;abaixar a caneta ("Pen Down") e mover para varios locais, desenhando uma caixa&lt;/span&gt;&lt;br /&gt;PU50,50;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;levantar a caneta ("Pen Up") e mover para 50,50&lt;/span&gt;&lt;br /&gt;CI25;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;desenha um circulo de raio 25&lt;/span&gt;&lt;br /&gt;SS;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;seleciona a fonte padrao&lt;/span&gt;&lt;br /&gt;DT*,1;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;define o asteristico como limitador de texto&lt;/span&gt;&lt;br /&gt;PU20,80;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;levanta a caneta e move para 20,80&lt;/span&gt;&lt;br /&gt;LBHello World*;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;escreve Hello World&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Faça o teste! copie o texto acima em um arquivo com extensão .plt.&lt;br /&gt;Obviamente, os comentários não fazem parte do arquivo...  :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SCRvysQARmI/AAAAAAAAACA/MPlvMYi37kU/s1600-h/teste.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SCRvysQARmI/AAAAAAAAACA/MPlvMYi37kU/s320/teste.png" alt="" id="BLOGGER_PHOTO_ID_5198402786554824290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Como visualizar o resultado? Infelizmente o visualizador de imagens padrão do Ubuntu/Gnome não entende este formato diretamente. Vamos precisar então converter para JPG ou PNG. Encontrei no repositório o programa HP2XX. Basta então, no seu programa em C, fazer uma chamada a este programa via system:&lt;br /&gt;&lt;blockquote&gt;system("hp2xx  -m  jpg  telecoteco.plt");&lt;/blockquote&gt;... para gerar o arquivo "telecoteco.jpg" , com a saida gráfica do seu programa.&lt;br /&gt;&lt;br /&gt;Depois disso tudo, talvez você esteja pensando... "mas, mesmo assim terei que aprender como funcionam alguns comandos do HPGL ..."&lt;br /&gt;&lt;br /&gt;É verdade .... tem sim .... mas você não está querendo moleza demais não??   :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3184044797291846250?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3184044797291846250/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3184044797291846250' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3184044797291846250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3184044797291846250'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/gerando-uma-sada-grfica-sem-complicaes.html' title='Gerando uma saída gráfica... sem complicações!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SCRvysQARmI/AAAAAAAAACA/MPlvMYi37kU/s72-c/teste.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-6661906890992457280</id><published>2008-05-08T20:51:00.004-03:00</published><updated>2008-09-12T21:01:00.231-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Governador Jaques Wagner dá um passo atrás na política de inclusão digital da Bahia</title><content type='html'>.&lt;br /&gt;Vou ter que abrir nova exceção, publicando aqui mais um post de outro blog, dada a importância do tema e principalmente a qualidade do texto!&lt;br /&gt;&lt;br /&gt;Por favor, visitem o post original &lt;a href="http://emerluis.wordpress.com/2008/04/23/governador-jaques-wagner-da-um-passo-atras-na-politica-de-inclusao-digital-da-bahia"&gt;aqui&lt;/a&gt;, de autoria de &lt;a href="http://emerluis.wordpress.com/about"&gt;Emerson Luis&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!  Carlão&lt;br /&gt;&lt;br /&gt;&lt;div class="snap_preview"&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div class="snap_preview"&gt;&lt;p&gt;Infelizmente o governador Jaques Wagner está indo na contramão das políticas de inclusão digital praticadas no Brasil.&lt;/p&gt; &lt;p&gt;(No) dia 23/03, o governador assina acordo com o presidente da Microsoft Brasil, Michel Levy, para parceria em projetos de inclusão digital na Bahia.&lt;/p&gt; &lt;p&gt;Isto significa que os telecentros, atualmente montados com Linux com a distro chamda de Berimbau, será substituída pelo Windows com o pacote Office e outros aplicativos proprietários.&lt;/p&gt; &lt;p&gt;Ou seja, o governador a partir de agora opta pelo “adestramento” dos usuários ao invés de uma capacitação que possibilite a quem quiser estudar e melhorar o código.&lt;/p&gt; &lt;p&gt;Um estudante não poderá realizar um curso de programação em plataforma, pq o código do Windows é fechado, e consequentemente não terá chance para uma vaga no mercado de trabalho como programador se ele desejar. O governador não dá ao usuário o direito de escolha para sua vida.&lt;/p&gt; &lt;p&gt;Engana-se o governador se pensa que está dando uma ótima oportunidade aos seus eleitores. &lt;span style="font-weight: bold;"&gt;O governador está é criando mais mercado de consumidores para a Microsoft, pois estes usuários hoje forçarão as empresas a comprarem mais licenças&lt;/span&gt;, alimentando a roda da baixa capacitação para as equipes internas de TI das empresas e órgãos públicos (grifo do Carlão).&lt;/p&gt; &lt;p&gt;Vejam vcs que no governo anterior, descendente direto do carlismo, a opção foi por plataforma aberta.&lt;/p&gt; &lt;p&gt;Num governo de esquerda, as decisões se voltam para o conservadorismo da escolha de ferramentas de TI.&lt;/p&gt; &lt;p&gt;O secretário de Ciência e Tecnologia do Estado, Ildes Ferreira, ou apoiou ou foi atropelado pela decisão do governador, que caiu no conto do vigário da “excelência” da Microsoft. Caiu no conto do Q de qualidade.&lt;/p&gt; &lt;p&gt;O erro deverá custar caro ao governador ao longo dos anos, quando a curva de adoção de plataformas, que já está se modificando, mostrar que a opção do mercado é cada vez mais pelo domínio do código e compartilhamento.&lt;/p&gt; &lt;p&gt;Governador, uma pena sua decisão. A comunidade SL pelo Brasil só tem a lamentar.&lt;/p&gt; &lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-6661906890992457280?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/6661906890992457280/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=6661906890992457280' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6661906890992457280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/6661906890992457280'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/governador-jaques-wagner-d-um-passo.html' title='Governador Jaques Wagner dá um passo atrás na política de inclusão digital da Bahia'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2242396633231713387</id><published>2008-05-08T11:31:00.003-03:00</published><updated>2008-05-08T11:36:46.195-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Histórica!</title><content type='html'>.&lt;br /&gt;Não quero ficar falando de futebol neste blog, é uma conversa sem fim, são paixões de um lado ou de outro, temos outras coisas mais interessantes pra compartilhar.&lt;br /&gt;&lt;br /&gt;Mas... como bom Vascaíno que sou, não posso deixar de registrar essa pequena manchete de jornal que tive a alegria de descobrir hoje ... :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Extra! Extra! Extra!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Flamengo imita Ronaldo e leva três nas costas!&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como diz um aluno muito amigo meu:&lt;br /&gt;"&lt;span style="font-weight: bold; font-style: italic;"&gt;Huahuahuahuahuahuahuahuahua!!!&lt;/span&gt;"&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(diz em outras situações, porque ele é flamenguista, não deve estar rindo nada agora...   :-)     )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2242396633231713387?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2242396633231713387/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2242396633231713387' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2242396633231713387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2242396633231713387'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/histrica.html' title='Histórica!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2066316159568401920</id><published>2008-05-06T20:48:00.005-03:00</published><updated>2008-08-01T23:58:44.410-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Rastreio de encomendas postadas nos Estados Unidos (USPS).... no sistema de rastreio dos CORREIOS!!</title><content type='html'>.&lt;br /&gt;Confesso que essa me impressionou!!&lt;br /&gt;&lt;br /&gt;Um amigo dos EUA me enviou um material pelos "correios" deles (USPS). Me informou o código de rastreio, que pode ser usado no site da USPS. Vejam na prática, acessem &lt;a href="http://www.usps.com/"&gt;www.usps.com&lt;/a&gt;, e no canto superior direito, em "track &amp;amp; confirm", digitem o código CP246071675US.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;[UPDATE em 1.agosto.2008: os dados já sairam do sistema. Sorry....]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como voces puderam ver, o sistema mostra o caminho até chegar no Brasil... e a partir daí, nada mais. Consultei o suporte da USPS, mas me informaram que nada poderiam me dizer, só ao remetente original nos EUA.&lt;br /&gt;&lt;br /&gt;Meio sem esperanças, consultei o suporte do nosso bom e velho CORREIOS. Qual não foi a surpresa quando descobri que o mesmo código pode ser utilizado no sistema de rastreio nacional!! Após o item chegar ao Brasil, toda sua história passa a constar do sistema dos CORREIOS.&lt;br /&gt;&lt;br /&gt;Façam o teste novamente, acessem &lt;a href="http://www.correios.com.br/"&gt;www. correios.com.br&lt;/a&gt;, e no canto inferior esquerdo, digitem no campo "rastreamento" o mesmo código indicado acima. Mas atenção!! Deixem marcado NACIONAL!&lt;br /&gt;&lt;br /&gt;Tá vindo de Feira de Santana para Ilhéus... já posso dormir tranquilo!!  :-)&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2066316159568401920?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2066316159568401920/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2066316159568401920' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2066316159568401920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2066316159568401920'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/rastreio-de-encomendas-postadas-nos.html' title='Rastreio de encomendas postadas nos Estados Unidos (USPS).... no sistema de rastreio dos CORREIOS!!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4817929249012545649</id><published>2008-05-03T22:29:00.005-03:00</published><updated>2008-09-12T21:02:48.767-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Dica: compilação otimizada no GCC</title><content type='html'>.&lt;br /&gt;Estou testando a NetBeans IDE, trabalhando com um projeto de redes neurais em C pro doutorado. Esbarrei no parâmetro "-O2" (letra Ó maiúscula), que seria para forçar o gcc a fazer uma otimização no código compilado. Resolvi então medir o tempo de processamento sem e com este parâmetro.&lt;br /&gt;&lt;br /&gt;Minha rede neural tem 3 camadas (incluindo a de entrada), 2 neuronios de entrada, 2 na camada escondida e 1 de saida. Botei a bicha pra aprender o velho e bom XOR com backpropagation, num total de 200000 épocas de treinamento.&lt;br /&gt;&lt;br /&gt;Coloquei o seguinte código respectivamente no início e no fim do main() para calcular o tempo de processamento:&lt;br /&gt;&lt;br /&gt; struct timeb ini, fim;&lt;br /&gt; ftime(&amp;amp;ini);&lt;br /&gt;&lt;br /&gt; .... todo o processamento ...&lt;br /&gt;&lt;br /&gt; ftime(&amp;amp;fim);&lt;br /&gt; printf("\n%f\n", ((double) fim.time + ((double) fim.millitm * 0.001)) -  ((double) ini.time + ((double) ini.millitm * 0.001)));&lt;br /&gt;&lt;br /&gt;Compilei o programa sem o parâmetro de otimização:&lt;br /&gt;&lt;br /&gt;gcc -o rna rnapi2.c -lm&lt;br /&gt;&lt;br /&gt;... e ele levou 48.220000 segundos de execução.&lt;br /&gt;&lt;br /&gt;Já compilando com o parâmetro de otimização,&lt;br /&gt;&lt;br /&gt;gcc -O2 -o rna rnapi2.c -lm&lt;br /&gt;&lt;br /&gt;... fantásticos 20.003000  !!&lt;br /&gt;&lt;br /&gt;Um segundo teste gerou os tempos 54 contra 19. Aliás, dá pra notar a velocidade diferente na própria exibição de mensagens no terminal (meu programa exibe, a cada época, o erro médio do conjunto de treinamento, ou seja, joga 200000 linhas na tela...).&lt;br /&gt;&lt;br /&gt;Vou estudar mais um pouco esse parâmetro, ver as limitações em termos de arquitetura de processadores e outros detalhes. Nesse meio tempo, comentários dos experts no assunto são bem vindos!!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4817929249012545649?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4817929249012545649/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4817929249012545649' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4817929249012545649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4817929249012545649'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/dica-compilao-otimizada-no-gcc.html' title='Dica: compilação otimizada no GCC'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3838744065318844098</id><published>2008-05-02T14:22:00.007-03:00</published><updated>2008-12-08T21:56:06.575-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><title type='text'>Campanha contra o uso de software proprietário pelo governo da Bahia</title><content type='html'>.&lt;br /&gt;Peço licença ao &lt;a href="http://andregondim.eti.br/"&gt;André Gondim&lt;/a&gt; para reproduzir aqui um post do seu Blog, para contribuir com a disseminação desta campanha.&lt;br /&gt;&lt;br /&gt;Também gostaria de adicionar um fato interessante... a questão do Software Livre é defendida pela "Juventude do PT", como pode se verificar  no documento "TESE AO I CONGRESSO DA JUVENTUDE DO PT" disponível em...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jpt.org.br/publicacoes/upload/fora_ordem.doc" target="_blank"&gt;http://www.jpt.org.br/publicac&lt;wbr&gt;oes/upload/fora_ordem.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Em especial, na página 5, item 14:&lt;br /&gt;&lt;br /&gt;" 14. Nosso programa de inclusão digital deve ser de maneira muito dura contrário ao uso dos softwares privados. A defesa do software livre deve estar na pauta do dia de nosso programa. "&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Campanha "Wagner diga não as drogas", texto abaixo encontra-se em &lt;a title="Techfree" href="http://techfree.wordpress.com/2008/04/28/vagner-diga-nao-as-drogas/" target="_blank"&gt;Techfree&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Como é de conhecimento de muitos da comunidade de Software Livre do Brasil, o governandor da Bahia , Jaques Wagner, assinou um protocolo de intenções com a Microsoft. De acordo com o Diario Oficial, esse protocolo visa a fomentação de cursos de inglês do programa “English for all” e também a instalação de telecentros com licenças que poderiam ser doadas ou vendidas por “baixo” custo.&lt;/p&gt; &lt;p&gt;Atentem para  o fato do protocolo não ter sido divulgado em momento algum e que não foi dado nenhum detalhe de como esses projetos irão ser implantados.&lt;/p&gt; &lt;p&gt;Uma coisa é fato, o dinheiro publico será usado para implantar algo que já existe no estado. O projeto &lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.cidadaniadigital.ba.gov.br/berimbaulinux.php?pgid=4"&gt;Berimbau Livre&lt;/a&gt;&lt;/span&gt;, que customizou a distribuição &lt;a title="Debian Br CDD" href="http://brdesktop.org/cdd" target="_self"&gt;Debian BR CDD (Atual BrDesktop)&lt;/a&gt; para que então tivessem como resultado o Berimbau Linux que é utilizado amplamente nos telecentros de inúmeros municipios da Bahia.&lt;/p&gt;  &lt;p&gt;A comunidade de Software Livre da Bahia &lt;a title="Reação Comunidade" href="https://twiki.dcc.ufba.br/bin/view/PSL/ReacaoProtocoloIntencoes" target="_blank"&gt;está se manifestando&lt;/a&gt; contra a esse tipo de ação e irá cobrar respostas do nosso governador sobre o acontecido.&lt;/p&gt; &lt;p&gt;Nesse link está sendo tratado as informações sobre a reação do PSL-BA contra esse ato. E foi lançado a campanha &lt;a title="Diga Não!" href="http://twiki.dcc.ufba.br/bin/view/PSL/WagnerDigaNaoAsDrogas" target="_blank"&gt;“Wagner, diga não às drogas!”&lt;/a&gt; para que sirva de alerta para o nosso governador não afunde anos de trabalho dos projetos de Software Livre da Bahia criando uma dependência desnecessária na nossa infraestrutura.&lt;/p&gt;  &lt;p&gt;Ao pessoal da comunidade Software Livre de todo Brasil eu solicito ajuda para que essa campanha seja divulgada nacionalmente.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SBtPUT9fP4I/AAAAAAAAAB0/xsab-1v4ecM/s1600-h/jaques_bill_wagner.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 475px; height: 317px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SBtPUT9fP4I/AAAAAAAAAB0/xsab-1v4ecM/s320/jaques_bill_wagner.jpg" alt="" id="BLOGGER_PHOTO_ID_5195833805476151170" border="0" /&gt;&lt;/a&gt; &lt;p&gt;&lt;a title="Diga Não!" href="http://twiki.dcc.ufba.br/bin/view/PSL/WagnerDigaNaoAsDrogas" target="_blank"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3838744065318844098?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3838744065318844098/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3838744065318844098' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3838744065318844098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3838744065318844098'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/05/campanha-contra-o-uso-de-software.html' title='Campanha contra o uso de software proprietário pelo governo da Bahia'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/SBtPUT9fP4I/AAAAAAAAAB0/xsab-1v4ecM/s72-c/jaques_bill_wagner.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4304629914028061003</id><published>2008-04-30T19:04:00.007-03:00</published><updated>2008-08-02T00:09:21.317-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='series'/><title type='text'>Super Máquina 2008 - Knight Rider 2008</title><content type='html'>.&lt;br /&gt;Acabei de asstir ao filme-piloto da nova série "Super Máquina 2008" (Knight Rider), remake de uma antiga série dos anos 80, e que eu já tinha anunciado aqui em &lt;a href="http://starfightercarlao.blogspot.com/2008/04/super-mquina-knight-rider-2008.html"&gt;post anterior&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Confesso que estava temeroso, pois eu fui um grande fã da série original, e tinha medo que "cagassem" o remake, tal como aconteceu com Thunderbirds ( &lt;a href="http://www.youtube.com/watch?v=-YyTfxeJxvQ"&gt;remake&lt;/a&gt; | &lt;a href="http://www.youtube.com/watch?v=2K9rVRuehGU"&gt;série original&lt;/a&gt; ), outra série pela qual eu fui apaixonado.&lt;br /&gt;&lt;br /&gt;Bem, o que tenho a dizer é...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:arial;font-size:180%;"  &gt;INCRÍVEL!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Uma verdadeira continuação!! Todo o universo da série original está lá, renovada e modernizada, com direito inclusive a participação especial do &lt;a href="http://www.imdb.com/media/rm4123891200/nm0001327"&gt;Michel Knight&lt;/a&gt; da série clássica! A &lt;a href="http://www.youtube.com/watch?v=bykGaVXx3Ck"&gt;tradicional música&lt;/a&gt; de abertura, obviamente &lt;a href="http://www.youtube.com/watch?v=YIGxVW8vTZM"&gt;remixada e modernizada&lt;/a&gt;, num trabalho maravilhoso tal qual fizeram com o tema de Missão Impossível (&lt;a href="http://www.memorychips.com.br/midia/missionimpos.wma"&gt;tema clássico&lt;/a&gt; | &lt;a href="http://www.youtube.com/watch?v=ZSGVCEOjIlQ"&gt;tema novo&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;Até o caminhão de onde sai o carro para as missões está lá! Bem, não é um caminhão ... mas vejam por vocês mesmos!&lt;br /&gt;&lt;br /&gt;Confesso que no início fiquei desapontado com o carro, com saudades do &lt;a href="http://www.riekmann.prohosting.com/magazin/knight_rider/kitt_vorne_1.jpg"&gt;antigo&lt;/a&gt; (OK, podem dizer que sou antiquado, mas é verdade mesmo, sou saudosista...). Mas bastou 10 minutos para essa impressão passar. Tremendo &lt;a href="http://www.zcars.com.au/images/knight-rider-kitt-shelby-gt500-kr1.jpg"&gt;carro&lt;/a&gt; ! Com direito a luzinha vermelha e tudo... Ou serão "carros" ? Novamente, vejam por vocês mesmos!&lt;br /&gt;&lt;br /&gt;Pena que trocaram a &lt;a href="http://memory-alpha.org/en/wiki/Image:Ariel.jpg"&gt;mecânica&lt;/a&gt; da série clássica por um &lt;a href="http://www.imdb.com/media/rm1527091456/nm1652307"&gt;cueca&lt;/a&gt; feio-pra-dédeu. Mas enfim, nada é perfeito...  :-)&lt;br /&gt;&lt;br /&gt;Resumindo, não perca tempo! Se você foi fã da série original, assista! Vai parecer mais um capítulo, que apenas levou "um tempinho maior" pra aparecer.... Mas se você não conhece a série original, assista também!! Vai gostar, "eu agarantio" !&lt;br /&gt;(Lembrando que o link emule está no post original. Pra quem quiser acompanhar e baixar os próximos episódios disponíveis, sugiro este &lt;a href="http://www.pootzforce.org/"&gt;site&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4304629914028061003?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4304629914028061003/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4304629914028061003' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4304629914028061003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4304629914028061003'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/super-mquina-2008-knight-rider-2008.html' title='Super Máquina 2008 - Knight Rider 2008'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2722086219603462970</id><published>2008-04-29T23:17:00.005-03:00</published><updated>2009-10-22T17:51:17.944-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><title type='text'>Software Livre e o verdadeiro acesso ao conhecimento</title><content type='html'>.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[ ATUALIZAÇÃO! ] Uma versão ligeiramente alterada deste texto foi publicada no número 37 (junho.2008) da Revista A Rede, e pode ser lida &lt;a href="http://www.arede.inf.br/inclusao/edicao-no37-junho2008/1437"&gt;aqui&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Escrevi o texto abaixo para publicação no jornal do &lt;a href="http://www.cacicuesc.com.br/"&gt;centro acadêmico&lt;/a&gt; do curso de Computação da universidade onde trabalho, a &lt;a href="http://www.uesc.br/"&gt;UESC&lt;/a&gt;. Como o jornal não saiu, e até mesmo uma nova equipe já foi eleita, publico o texto aqui.&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Quando alguém começa a falar sobre Software Livre, logo entram em cena as comparações com o software proprietário, em especial comparações técnicas: facilidade/dificuldade de instalação e uso, se a placa “x” ou “y” funciona com o sistema operacional “z”, (in)existência do recurso “j” no sistema “k”... as combinações (e as paixões!) são quase infinitas.&lt;br /&gt;&lt;br /&gt;Penso que quando a discussão toma esse rumo, ela perde o que deveria ser o foco principal. A rigor, tecnicamente falando, não há diferenças entre um software proprietário e um Software Livre. Um pode ter a característica “x” que falta no outro, porém o outro com certeza terá a característica “y” que falta no primeiro. Ou então, um tem o suporte de milhares de empresas de hardware que se renderam ao monopólio bem sucedido da empresa “m”, mas o outro tem o verdadeiro milagre de ter milhares de programadores ao redor do mundo que disponibilizam os mais diversos drivers para os mais diversos periféricos, as vezes (na maior parte dos casos!) pelo puro prazer da programação e do compartilhamento.&lt;br /&gt;&lt;br /&gt;A favor do Software Livre, surge a questão do preço. Apesar do “free” em “Free Software” significar “free speech”, e não “free beer”, a realidade é que o Software Livre é, na grande maioria dos casos, “free beer”. Porém continuo achando que este não é o rumo principal para esta discussão. Ser grátis, obviamente, contribui para resolver a questão da pirataria de software, questão esta que deveria ser de fundamental importância para os alunos da área de Computação, já estes pretendem construir uma carreira profissional nesta área. Ainda assim, isto não é o mais importante.&lt;br /&gt;&lt;br /&gt;O objetivo deste texto é refletir sobre o papel do Software Livre em um ambiente educacional. Nesse sentido, o mais importante a ser falado, comentado e discutido sobre Software Livre são os valores fundamentais desta filosofia: Liberdade de conhecimento. Liberdade de uso. Colaboração. Compartilhamento.&lt;br /&gt;&lt;br /&gt;O objetivo principal da Universidade não é a formação de um simples profissional “apertador de botões”, que só sabe trabalhar com um software específico, produzido por uma única empresa (a rigor, isto não se chama “profissional”; isto se chama “cliente”!). O objetivo principal da Universidade é, antes de tudo, a formação do cidadão crítico, consciente, capaz de pensar por si próprio; de forma complementar, busca-se a formação de um profissional completo, que realmente domine os conhecimentos fundamentais da sua profissão.&lt;br /&gt;&lt;br /&gt;Quando uma disciplina utiliza um software proprietário como base de suas atividades, é simplesmente isso: um “uso”, uma “ferramenta”. O aluno aprende e exercita os conceitos através desta ferramenta, e é só. Alternativamente, se a disciplina baseia suas atividades em um Software Livre, um novo leque de oportunidades e possibilidades se abre para enriquecer a experiência dos alunos: pode-se ter acesso a versão completa do software, a mesma que está sendo utilizada “pra valer” ao redor do mundo, e não a uma simples versão educacional, “trial”, ou o que é pior, pirata; pode-se ter acesso a vários softwares diferentes, para estudar suas diferenças e comparar suas vantagens/desvantagens; pode-se ter acesso a uma quantidade enorme de material de referência, disponível gratuitamente na Internet; pode-se confiar que este material contém informações completas, já que não há segredos que serão disponibilizados apenas pela empresa proprietária do software, em materiais de referência também proprietários e vendidos a preço de ouro; para os mais curiosos, existe a possibilidade de estudar a própria implementação (código-fonte) do software - isto significa não apenas aprender a configurar e usar um certo recurso, mas sim como implementar na prática aquele recurso. Acima de tudo, existe a possibilidade de colaboração, de participação direta dos alunos no desenvolvimento do software, através da criação de novos materiais de referência, utilizando e reportando defeitos, ou até mesmo consertando defeitos. Em resumo, isto tudo significa verdadeiro acesso ao conhecimento.&lt;br /&gt;&lt;br /&gt;Concluo, portanto, que a adoção do Software Livre é fundamental para se conseguir uma verdadeira ação educativa, com acesso irrestrito ao conhecimento. Nesse sentido, é necessária uma parceria entre professores e alunos no sentido de operacionalizar cada vez mais a adoção do Software Livre nas diversas disciplinas dos cursos de Ciências da Computação, e até mesmo de outros cursos.&lt;br /&gt;&lt;br /&gt;Precisamos tomar uma decisão importante: queremos virar cidadãos críticos e profissionais completos, verdadeiros “cientistas da computação”, ou nos contentaremos apenas com a função de “clientes”, meros “apertadores de botões” ?&lt;br /&gt;&lt;br /&gt;A escolha é nossa!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2722086219603462970?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2722086219603462970/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2722086219603462970' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2722086219603462970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2722086219603462970'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/software-livre-e-o-verdadeiro-acesso-ao.html' title='Software Livre e o verdadeiro acesso ao conhecimento'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-3404580423921279104</id><published>2008-04-29T22:03:00.002-03:00</published><updated>2008-04-29T22:13:46.389-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Para o meu visitante Eduardo Melcher Filho</title><content type='html'>.&lt;br /&gt;Eu tinha o texto abaixo, da Cora Coralina, como entrada do meu antigo site de disponibilização de material de aula. Como é muito mais fácil disponibilizar material via "grupos" (do Google ou Yahoo), estou "fechando" o site definitivamente. E para não perder o texto (e deixar de fazer a homenagem), registro por aqui.&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;"&lt;br /&gt;Ele me disse:&lt;br /&gt;trabalho com um computador e não estou satisfeito.&lt;br /&gt;Gostaria de ser pintor, compositor, poeta.&lt;br /&gt;Escrever romances, fazer Arte.&lt;br /&gt;Meu elemento de trabalho é por demais mecânico,&lt;br /&gt;insensível, impessoal.&lt;br /&gt;&lt;br /&gt;Amigo, disse-lhe em mensagem:&lt;br /&gt;olha bem uma lixeira, um monte de lixo.&lt;br /&gt;Não voltes o rosto enojado,&lt;br /&gt;nem leves o lenço ao nariz ao cheiro acre&lt;br /&gt;que te parece insuportável.&lt;br /&gt;No lixo nauseante há uma vida,&lt;br /&gt;muitas vidas&lt;br /&gt;e na vida haverá sempre sentimento,&lt;br /&gt;vibração e poesia.&lt;br /&gt;Tudo que compõe o lixo veio da terra&lt;br /&gt;e, depois de aproveitado,&lt;br /&gt;usado, espremido e sugado,&lt;br /&gt;volta para a terra.&lt;br /&gt;Milhões de gérmens fazem ali uma química&lt;br /&gt;poderosa e fecundante,&lt;br /&gt;transformando em húmus a matéria orgânica,&lt;br /&gt;repulsiva e rejeitada.&lt;br /&gt;Ela vai fazer seu retorno a terra&lt;br /&gt;num processo perene de transformação&lt;br /&gt;e esta a devolverá a ti&lt;br /&gt;no sabor perfumado de um sorvete de morangos.&lt;br /&gt;&lt;br /&gt;Procura sempre a alma oculta do teu computador.&lt;br /&gt;Ele é uma criação maravilhosa da inteligência humana.&lt;br /&gt;Um dia tua sensibilidade a encontrará.&lt;br /&gt;"&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;Coralina, Cora. Vintém de cobre: meias confissões de Aninha.&lt;br /&gt;8a. ed. São Paulo: Global, 2001&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-3404580423921279104?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/3404580423921279104/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=3404580423921279104' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3404580423921279104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/3404580423921279104'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/para-o-meu-visitante-eduardo-melcher.html' title='Para o meu visitante Eduardo Melcher Filho'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-631360147668976866</id><published>2008-04-29T10:31:00.005-03:00</published><updated>2008-12-08T21:56:06.857-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>Teclado por "apenas" 1500 dólares</title><content type='html'>.&lt;br /&gt;Fui ontem numa loja comprar um cabo de rede, e enquanto esperava o cara montar os conectores do cabo, vi um teclado a venda por apenas R$ 9,99. Fiquei impressionado, pois na minha cabeça um teclado simples "ainda" custava em torno de 30 mérreis.&lt;br /&gt;&lt;br /&gt;Mais tarde, encontrei a notícia da criação de um teclado que custa "apenas" 1500 dólares!&lt;br /&gt;&lt;br /&gt;Por que tão caro? Simples, ele tem, em CADA tecla, um pequeno display gráfico, medindo 10 milímetros quadrados, resolução de 48x48 pixels e (!?!!?!?!) 65535 cores. São mais de 100 desses pequenos monitores!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/SBck6T9fP3I/AAAAAAAAABk/KE8-R4NNtuo/s1600-h/optimus_maximus.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 430px; height: 370px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/SBck6T9fP3I/AAAAAAAAABk/KE8-R4NNtuo/s320/optimus_maximus.jpg" alt="" id="BLOGGER_PHOTO_ID_5194661279404343154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pra  que serve? Bem, uma das aplicações citadas como exemplo pode ser, quando você aperta a tecla SHIFT, todos os desenhos das letras mudam automaticamente para maiúsculas (&lt;span style="font-weight: bold;"&gt;nossa!&lt;/span&gt; não sei como pude viver até hoje sem esse recurso!!). Ou então, ao utilizar algum software específico, as teclas de "atalho rápido" mostram algum desenho relativo à operação que realizam. Notem na imagem acima uma tecla com o desenho do Firefox, outra com o do Gmail, e por aí vai.&lt;br /&gt;&lt;br /&gt;Pra quem se interessou, segue o&lt;a href="http://www.thinkgeek.com/computing/input/9836/"&gt; link&lt;/a&gt; para compra. Tem também um videozinho mostrando "essa maravilha" em ação.&lt;br /&gt;&lt;br /&gt;Uma observação final: Aproveite bem sua vida agora, porque do jeito que vai a coisa, o planeta não vai aguentar....&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-631360147668976866?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/631360147668976866/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=631360147668976866' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/631360147668976866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/631360147668976866'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/teclado-por-apenas-1500-dlares.html' title='Teclado por &quot;apenas&quot; 1500 dólares'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/SBck6T9fP3I/AAAAAAAAABk/KE8-R4NNtuo/s72-c/optimus_maximus.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7065236229558894398</id><published>2008-04-28T20:45:00.005-03:00</published><updated>2008-12-08T21:56:06.976-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='series'/><title type='text'>A Super Máquina (Knight Rider) .... 2008  !!</title><content type='html'>.&lt;br /&gt;Que-qui-é-isso... que absurdo!!!&lt;br /&gt;&lt;br /&gt;Então fazem uma versão 2008 da "Super Máquina", e ninguém me avisa ?!?!!&lt;br /&gt;&lt;br /&gt;E as SEMANAS (não foram nem horas!!) que gastei nos idos de 1982 assistindo a série original, não conta não ?!??!??     :-)&lt;span style="font-family: webdings;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/SBZieT9fP2I/AAAAAAAAABc/bQ3SVqd-P5o/s1600-h/krider2008.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 494px; height: 195px;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/SBZieT9fP2I/AAAAAAAAABc/bQ3SVqd-P5o/s200/krider2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5194447493112217442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nbc.com/Knight_Rider/"&gt;Site oficial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;eMule:  &lt;a href="ed2k://%7Cfile%7CKnight.Rider.2008.Pilot.HDTV.XviD-LOL.avi%7C733798400%7CAB6245845A6383C3077351915C54C178%7Ch=CAP2B3HFRKOMBSOQVHODCWGNQNINZ555%7C/"&gt;Filme&lt;/a&gt;  |  &lt;a href="ed2k://%7Cfile%7CKnight.Rider.2008.Pilot.HDTV.XviD-LOL.srt%7C87642%7C1F6106D3FFA1F64EF5C141E195490C86%7Ch=5WG6M4X4Y3KY6QCQK4NDN5IGHVXQTNIE%7C/"&gt;Legenda&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7065236229558894398?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7065236229558894398/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7065236229558894398' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7065236229558894398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7065236229558894398'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/super-mquina-knight-rider-2008.html' title='A Super Máquina (Knight Rider) .... 2008  !!'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/SBZieT9fP2I/AAAAAAAAABc/bQ3SVqd-P5o/s72-c/krider2008.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-1003426142717109308</id><published>2008-04-25T23:55:00.003-03:00</published><updated>2008-09-12T21:10:21.632-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>RETROCESSO NA BAHIA? GOVERNO FAZ ACORDO PARA EXPANDIR PODER DO EX-MONOPÓLIO?</title><content type='html'>Quando resolvi criar este Blog, decidi que não ficaria repetindo posts de outros Blogs, como vemos muito por aí. Mas terei que abrir uma exceção neste caso, dada a importância do tema.&lt;br /&gt;&lt;br /&gt;De qualquer modo, aqui não vai nada além do título. Leiam o post na íntegra no Blog do Prof. Sérgio Amadeo, em&lt;br /&gt;&lt;br /&gt;&lt;a href="http://samadeu.blogspot.com/2008/04/retrocesso-na-bahia-governador-faz.html"&gt;http://samadeu.blogspot.com/2008/04/retrocesso-na-bahia-governador-faz.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A notícia original está em&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jornaldamidia.com.br/noticias/2008/04/22/Bahia_Nacional/Estado_da_Bahia_assina_acordo_de_.shtml"&gt;http://www.jornaldamidia.com.br/noticias/2008/04/22/Bahia_Nacional/Estado_da_Bahia_assina_acordo_de_.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-1003426142717109308?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/1003426142717109308/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=1003426142717109308' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1003426142717109308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1003426142717109308'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/retrocesso-na-bahia-governo-faz-acordo.html' title='RETROCESSO NA BAHIA? GOVERNO FAZ ACORDO PARA EXPANDIR PODER DO EX-MONOPÓLIO?'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-7289593888676258412</id><published>2008-04-25T23:38:00.004-03:00</published><updated>2008-09-12T21:12:57.878-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software livre'/><category scheme='http://www.blogger.com/atom/ns#' term='delirios'/><title type='text'>The Hacker Attitude</title><content type='html'>.&lt;br /&gt;  -  The world is full of fascinating problems waiting to be solved.&lt;br /&gt;&lt;br /&gt;  -  Nobody should ever have to solve a problem twice.&lt;br /&gt;&lt;br /&gt;  -  Boredom and drudgery are evil.&lt;br /&gt;&lt;br /&gt;  -  Freedom is good.&lt;br /&gt;&lt;br /&gt;  -  Attitude is no substitute for competence.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Eric Raymond&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Texto completo em &lt;a href="http://www.catb.org/%7Eesr/faqs/hacker-howto.html"&gt;inglês&lt;/a&gt; ou &lt;a href="http://jvdm.freeshell.org/pt/raquer-howto/"&gt;português&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-7289593888676258412?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/7289593888676258412/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=7289593888676258412' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7289593888676258412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/7289593888676258412'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/hacker-attitude.html' title='The Hacker Attitude'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2291110347935334593</id><published>2008-04-24T15:53:00.011-03:00</published><updated>2008-05-11T22:12:28.276-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Ebooks</title><content type='html'>Precisando estudar, mas o livro que você precisa só tem no exterior? Está sem grana pra comprar aquele livro importado? A Amazon tá cobrando aqueles 40 dólares básicos só para enviar o livro que você quer? Ou então você paga só $15, mas espera "apenas" 6 semanas?&lt;br /&gt;&lt;br /&gt;Segue abaixo uma lista de sites com ebooks, nos mais diversos assuntos, mas em especial sobre computação. Procure, baixe, estude, mas não esqueça: valorize a produção do autor e na medida do possível compre a obra original. Ajuda o autor e ajuda a você montar uma biblioteca para sua vida profissional...&lt;br /&gt;&lt;br /&gt;Aqui só estão listados "links". Não tem nada armazenado aqui, nem comigo. Também não garanto contra vírus, ou trojans, ou spyware, ou adware, ou sei-lá-o-que-ware. Siga por sua conta ou risco.&lt;br /&gt;&lt;br /&gt;...  ou seja,    "&lt;a href="http://www.phrases.org.uk/bulletin_board/3/messages/520.html"&gt;don't kill the messenger&lt;/a&gt;"  !!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[atualização em 11.maio.2008]&lt;br /&gt;Coloquei esta atualização em primeiro lugar na lista porque encontrei hoje aqui um livro que não achei em nenhum outro site!&lt;br /&gt;http://www.dleex.com/&lt;br /&gt;&lt;br /&gt;http://www.flazx.com/&lt;br /&gt;Este aqui é campeão. Olhe em primeiro lugar!&lt;br /&gt;&lt;br /&gt;http://www.avaxsphere.com/&lt;br /&gt;Minha segunda escolha. Clique no alto da página em "ebooks".&lt;br /&gt;&lt;br /&gt;http://www.ebookee.com/&lt;br /&gt;Terceiro na minha preferência.&lt;br /&gt;&lt;br /&gt;http://www.esnips.com/&lt;br /&gt;É um repositório genérico (não apenas ebooks), mas vale a pena dar uma conferida.&lt;br /&gt;&lt;br /&gt;http://www.4shared.com/&lt;br /&gt;Outro repositório genérico, como o anterior.&lt;br /&gt;&lt;br /&gt;http://knowfree.net/&lt;br /&gt;&lt;br /&gt;http://6freedownloadlinks.blogspot.com/&lt;br /&gt;&lt;br /&gt;http://groups.google.com/group/Viciados_em_Livros&lt;br /&gt;Este não é um repositório, é um grupo hospedado no Google. Cuidado ao entrar na lista de discussão, o tráfego de mensagens é de umas 50 mensagens por dia!! Voltado para livros em geral, não apenas os técnicos. Mas estes também são encontrados.&lt;br /&gt;&lt;br /&gt;http://groups.google.com/group/revistalivre?&amp;amp;hl=pt-BR&lt;br /&gt;Mesma idéia do grupo anterior, só que voltado para revistas.&lt;br /&gt;&lt;br /&gt;http://www.ebookshare.net/&lt;br /&gt;&lt;br /&gt;http://freebooksource.com/&lt;br /&gt;&lt;br /&gt;http://freeprogrammingebooks.com/&lt;br /&gt;&lt;br /&gt;http://online-books-reference.blogspot.com/&lt;br /&gt;&lt;br /&gt;http://www.zillr.org/&lt;br /&gt;&lt;br /&gt;http://www.ebooklobby.com/&lt;br /&gt;&lt;br /&gt;http://freecomputerbooks.com/&lt;br /&gt;&lt;br /&gt;http://www.click-now.net/ebooks.htm&lt;br /&gt;&lt;br /&gt;http://www.itstudy8.org/&lt;br /&gt;&lt;br /&gt;http://www.giuciao.com/&lt;br /&gt;&lt;br /&gt;http://www.di.ufpb.br/liliane/tutoriais.html&lt;br /&gt;&lt;br /&gt;http://www.programmingbooks.org/&lt;br /&gt;&lt;br /&gt;http://freebooks.homelinux.org/&lt;br /&gt;Específico para Linux.&lt;br /&gt;&lt;br /&gt;http://knuth.uca.es/moodle/index.php&lt;br /&gt;Livros on-line sobre estatística. Em espanhol.&lt;br /&gt;&lt;br /&gt;http://www.dmoz.org/Computers/&lt;br /&gt;&lt;br /&gt;http://www.freetechbooks.com/&lt;br /&gt;&lt;br /&gt;http://www.ru.lv/~peter/ebooks.html&lt;br /&gt;Listão. Simples e direto!!&lt;br /&gt;&lt;br /&gt;http://www.bibvirt.futuro.usp.br/&lt;br /&gt;&lt;br /&gt;http://freedownloadblogs.com/&lt;br /&gt;&lt;br /&gt;http://ebookhelper.blogspot.com/&lt;br /&gt;&lt;br /&gt;http://www.ebookdy.com/&lt;br /&gt;Repositório muito bom. Mas o sistema de busca é uma porcaria!!!&lt;br /&gt;&lt;br /&gt;http://ebooks.bookslab.net/&lt;br /&gt;&lt;br /&gt;http://2020ok.com/&lt;br /&gt;&lt;br /&gt;http://www.ebooksdl.org/index.php&lt;br /&gt;Outro muito bom, mas com sistema de busca ruim!&lt;br /&gt;&lt;br /&gt;http://www.ebooksbay.org/&lt;br /&gt;Pelo pouco que vi, baixa os arquivos via Torrent (ou seja, você vai precisar de um cliente torrent!)&lt;br /&gt;&lt;br /&gt;http://www.btebook.com/0-01a8edbf9d27cebe.htm&lt;br /&gt;O sistema de busca deste não é ruim não.... se fosse "apenas" ruim, tava bom!!! Vais ter que navegar página por página.&lt;br /&gt;&lt;br /&gt;http://www.innoebooks.net/&lt;br /&gt;&lt;br /&gt;http://downloadebookz.info/&lt;br /&gt;&lt;br /&gt;http://rapidlibrary.com/&lt;br /&gt;Este aqui é um sistema de buscas construido para trabalhar com o repositório "rapidshare".&lt;br /&gt;&lt;br /&gt;http://www.worldclassbooks.info/&lt;br /&gt;&lt;br /&gt;http://electronic-ebooks.blogspot.com/&lt;br /&gt;&lt;br /&gt;http://download-free-ebooks.blogspot.com/&lt;br /&gt;&lt;br /&gt;http://www.ebooks-ftp.com/&lt;br /&gt;&lt;br /&gt;http://www.pdfchm.com/&lt;br /&gt;&lt;br /&gt;http://rapidshare.com/users/4NKH8H&lt;br /&gt;Página de um usuário específico do rapidshare, com alguma coisa interessante.&lt;br /&gt;&lt;br /&gt;http://www.downloadfreepdf.com/&lt;br /&gt;&lt;br /&gt;http://www.isbnonline.com/&lt;br /&gt;&lt;br /&gt;http://www.free-ebook-download.net/&lt;br /&gt;&lt;br /&gt;http://developersbooks.com/&lt;br /&gt;&lt;br /&gt;http://www.share-ebooks.com/&lt;br /&gt;&lt;br /&gt;http://www.ufpel.tche.br/clmd/bvm/default.php&lt;br /&gt;Biblioteca virtual de matemática, da Universidade Federal de Pelotas.&lt;br /&gt;&lt;br /&gt;[ ATUALIZAÇÃO - Obrigado, Gesil! ]&lt;br /&gt; http://www.gigapedia.org&lt;br /&gt;&lt;br /&gt;[ ATUALIZAÇÃO ]&lt;br /&gt;http://www.literature-free.com/&lt;br /&gt;&lt;br /&gt;[ ATUALIZAÇÃO em 28.abril ]&lt;br /&gt;Texto completo do livro "How to design programs: An introduction to programming and computers", disponibilizado pela própria MIT Press&lt;br /&gt;http://www.htdp.org/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2291110347935334593?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2291110347935334593/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2291110347935334593' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2291110347935334593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2291110347935334593'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/ebooks.html' title='Ebooks'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-8267883404357989087</id><published>2008-04-07T14:09:00.004-03:00</published><updated>2008-04-07T14:33:43.020-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Importação de livros</title><content type='html'>.&lt;br /&gt;Nem só de &lt;a href="http://www.amazon.com/"&gt;Amazon.com&lt;/a&gt; vive quem gosta/precisa comprar um livro importado. O site&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.abebooks.com/"&gt;www.abebooks.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;... é uma espécie de organizador/intermediador para a compra de livros novos ou usados em vários sebos americanos (ou não). Uma espécie de &lt;a href="http://www.estantevirtual.com.br/"&gt;Estante Virtual&lt;/a&gt; para livros importados.&lt;br /&gt;&lt;br /&gt;Acabei de receber um livro (da área de computação) comprado neste site. O preço foi de US$ 61 quando no distribuidor oficial do livro (Universidade de Colorado) o preço é de US$110. Também o envio surpreendeu: US$ 22 contra os US$ 75 sugeridos pelo distribuidor oficial, e o transporte levou apenas 7 dias! O envio mais rápido da Amazon você não paga menos de US$ 40.&lt;br /&gt;&lt;br /&gt;E o que é melhor: Recebi um livro novo!!! Zero bala!!! Branquinho branquinho!! Sem os garranchos que geralmente encontramos em livros usados.&lt;br /&gt;&lt;br /&gt;Tou com uma vontade imensa de mandar outro email pro distribuidor oficial, para tirar uma na cara dele! Pena que sou um homem (quase) sério...    :-)&lt;br /&gt;&lt;br /&gt;Certamente, na minha próxima compra de livros importados, vou visitar este site primeiro.&lt;br /&gt;&lt;br /&gt;Abraços a todas e a todos!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-8267883404357989087?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/8267883404357989087/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=8267883404357989087' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8267883404357989087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/8267883404357989087'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/importao-de-livros.html' title='Importação de livros'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-1505068087336496014</id><published>2008-04-06T16:25:00.006-03:00</published><updated>2008-12-08T21:56:07.229-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Trocentas mil imagens do TUX</title><content type='html'>.&lt;br /&gt;Já precisou de uma imagem do TUX praquela apresentação/palestra/sei-lá-o-que, e teve que se contentar com uns TUXes chinfrins que tem por aí na net?&lt;br /&gt;&lt;br /&gt;Mais uma vez, "seus problemas acabaram!!"&lt;br /&gt;&lt;br /&gt;No site "TUX factory" em&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tux.crystalxp.net/en.htm"&gt;http://tux.crystalxp.net/en.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;... tem um montão de imagens do TUX, pra lá de caprichadas.&lt;br /&gt;&lt;br /&gt;Segue abaixo uma bonitinha, do "Dalai-TUX".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pt.wikipedia.org/wiki/Namaste"&gt;Namastê&lt;/a&gt; !&lt;br /&gt;&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/R_kmD8Dr-hI/AAAAAAAAABQ/fV675BJlEWA/s1600-h/brunocb-dalai-tux-lama.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 264px; height: 264px;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/R_kmD8Dr-hI/AAAAAAAAABQ/fV675BJlEWA/s200/brunocb-dalai-tux-lama.png" alt="" id="BLOGGER_PHOTO_ID_5186218294996892178" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-1505068087336496014?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/1505068087336496014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=1505068087336496014' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1505068087336496014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/1505068087336496014'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/04/trocentas-mil-imagens-do-tux.html' title='Trocentas mil imagens do TUX'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/R_kmD8Dr-hI/AAAAAAAAABQ/fV675BJlEWA/s72-c/brunocb-dalai-tux-lama.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-703410771834691048</id><published>2008-03-26T11:55:00.004-03:00</published><updated>2008-04-25T11:53:41.453-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>PDF com impressão proibida / bloqueada</title><content type='html'>Já aconteceu com você de baixar aquele PDF super legal que vai te ajudar no seu trabalho ou estudo, e como DETESTA (como eu) ler na tela, tenta imprimir e descobre que o dito cujo está bloqueado para impressão ?&lt;br /&gt;&lt;br /&gt;Sentiu aquela raiva que vem do útero (mesmo se for homem), e fica imaginando o que leva um ser a disponibilizar material mas proibir a impressão? Será preocupação ecológica?? Ou só frescura mesmo?&lt;br /&gt;&lt;br /&gt;Bem, como diz a galera das Organizações Tabajara, seus problemas acabaram! Basta usar o KPDF.&lt;br /&gt;&lt;br /&gt;No terminal (Ubuntu e provavelmente qualquer outra distribuição derivada do Debian), digite:&lt;br /&gt;sudo apt-get install kpdf&lt;br /&gt;&lt;br /&gt;... ou vai no synaptic e procura pelo kpdf&lt;br /&gt;&lt;br /&gt;Ainda no terminal, digita&lt;br /&gt;kpdf&lt;br /&gt;... ou vai no menu applications | graphic e clica no kpdf.&lt;br /&gt;&lt;br /&gt;No Kpdf, vai em settings | configure kpdf, e na janela que vai abrir desmarque "obey DRM limitations", e depois OK.&lt;br /&gt;&lt;br /&gt;Pronto! Imprima seu PDF, e saboreie esse momento de vingança!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-703410771834691048?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/703410771834691048/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=703410771834691048' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/703410771834691048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/703410771834691048'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/03/pdf-com-impresso-proibida-bloqueada.html' title='PDF com impressão proibida / bloqueada'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-5158102997388582704</id><published>2008-03-18T00:49:00.004-03:00</published><updated>2008-12-08T21:56:07.410-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jogos'/><category scheme='http://www.blogger.com/atom/ns#' term='msx'/><title type='text'>Jogo Elite no Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_YcnKHahXCEc/R988iuxlm5I/AAAAAAAAABI/tWpalNtqXuY/s1600-h/oolite_008.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_YcnKHahXCEc/R988iuxlm5I/AAAAAAAAABI/tWpalNtqXuY/s200/oolite_008.jpg" alt="" id="BLOGGER_PHOTO_ID_5178924663868595090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;E já que estamos falando de Elite... pra quem usa Ubuntu (e provavelmente, outras distribuições Linux, procurem nos seus repositórios!!) tem uma versão pra lá de caprichada de um "clone", chamado OOLITE.&lt;br /&gt;&lt;br /&gt;Neste jogo, você vai encontrar todos os ingredientes do Elite, só que com gráficos muito mais caprichados.&lt;br /&gt;&lt;br /&gt;Está no repositório do Ubuntu, mas pra quem quiser dar uma olhada no site oficial, veja em http://oolite.aegidian.org&lt;br /&gt;&lt;br /&gt;Divirtam-se!&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-5158102997388582704?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/5158102997388582704/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=5158102997388582704' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5158102997388582704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/5158102997388582704'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/03/jogo-elite-no-ubuntu.html' title='Jogo Elite no Ubuntu'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_YcnKHahXCEc/R988iuxlm5I/AAAAAAAAABI/tWpalNtqXuY/s72-c/oolite_008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-4449843660951396111</id><published>2008-03-18T00:37:00.003-03:00</published><updated>2008-12-08T21:56:07.582-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jogos'/><category scheme='http://www.blogger.com/atom/ns#' term='msx'/><title type='text'>Jogo tipo Elite no celular</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_YcnKHahXCEc/R9862-xlm4I/AAAAAAAAABA/20w8TSLyhlE/s1600-h/galaxyonfire.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_YcnKHahXCEc/R9862-xlm4I/AAAAAAAAABA/20w8TSLyhlE/s200/galaxyonfire.png" alt="" id="BLOGGER_PHOTO_ID_5178922812737690498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pra quem, como eu, gastou horas intermináveis na frente de um MSX jogando Elite, viajando entre planetas, comprando e vendendo coisas, algo para matar a saudade...&lt;br /&gt;&lt;br /&gt;"Galaxy on fire" não chega a ser o Elite propriamente dito, mas lembra muito! No início, você tem umas missões específicas. Depois, você ganha acesso ao mapa, e pode escolher que sistema e que planeta (ou estação espacial) você quer visitar. Para cada missão completada, você recebe uma quantidade de créditos ($$$!), e pode comprar armas mais poderosas, ou mesmo trocar de nave.&lt;br /&gt;&lt;br /&gt;O que me deixou impressionado foi como alguém conseguiu fazer em java um jogo muito rápido, com gráficos maravilhoso, numa telinha de celular!!! (o meu é um k310i, 120x160 mais ou menos)&lt;br /&gt;&lt;br /&gt;Site oficial: http://www.galaxy-on-fire.com&lt;br /&gt;&lt;br /&gt;Engraçado.... escrevendo este post, entrou um passarinho pela janela, com um papel no bico, e neste papel estava escrito: http://www.myk310.xpg.com.br&lt;br /&gt;&lt;br /&gt;Porque será?? :-)&lt;br /&gt;&lt;br /&gt;Abraços!&lt;br /&gt;Carlão&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-4449843660951396111?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/4449843660951396111/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=4449843660951396111' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4449843660951396111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/4449843660951396111'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/03/jogo-tipo-elite-no-celular.html' title='Jogo tipo Elite no celular'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_YcnKHahXCEc/R9862-xlm4I/AAAAAAAAABA/20w8TSLyhlE/s72-c/galaxyonfire.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1071551496408414305.post-2164930972664900013</id><published>2008-03-12T21:47:00.005-03:00</published><updated>2008-08-02T00:13:53.530-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inicial'/><title type='text'>Primeiro post....</title><content type='html'>.&lt;br /&gt;Olá!&lt;br /&gt;&lt;br /&gt;Este blog vai ser um conjunto de notas de assuntos diversos. Como li em outro blog por aí, um "caderno de notas" genérico. Espere principalmente posts ligados a computação - GNU/Linux, Ubuntu, Programação (C, C++, Java, e outras que surgirem...), Antiguidades da computação (micros 8 bits em geral, NEZ8000, TK82, TK83, TK85, TK2000, MSX ...) - acompanhados de sériados, filmes de ficção científica, livros, estudos introdutórios de eletrônica básica e digital, xadrez...&lt;br /&gt;&lt;br /&gt;O nome do blog é uma homenagem a um filme dos anos 80, veja uma descrição &lt;a href="http://en.wikipedia.org/wiki/The_Last_Starfighter"&gt;aqui&lt;/a&gt; ... ou via emule &lt;a href="http://www.edonkers.org/forum/viewtopic.php?t=26596"&gt;aqui&lt;/a&gt;, se você ficou muito curioso...&lt;br /&gt;&lt;br /&gt;Grande abraço a todas e a todos!&lt;br /&gt;&lt;br /&gt;Carlão&lt;br /&gt;&lt;br /&gt;"Que o caminho seja brando aos teus pés;&lt;br /&gt;Que o vento sopre leve em teus ombros;&lt;br /&gt;Que o Sol brilhe cálido em tuas faces;&lt;br /&gt;Que as chuvas caiam serenas em teus campos.&lt;br /&gt;E, até que eu de novo te veja,&lt;br /&gt;Que a Deusa te guarde na Palma da Mão!"&lt;br /&gt;                                                (Bênção Irlandesa)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1071551496408414305-2164930972664900013?l=starfightercarlao.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://starfightercarlao.blogspot.com/feeds/2164930972664900013/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1071551496408414305&amp;postID=2164930972664900013' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2164930972664900013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1071551496408414305/posts/default/2164930972664900013'/><link rel='alternate' type='text/html' href='http://starfightercarlao.blogspot.com/2008/03/primeiro-post.html' title='Primeiro post....'/><author><name>Carlos José Pereira</name><uri>http://www.blogger.com/profile/01782340844471523060</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp2.blogger.com/_YcnKHahXCEc/R9iEj-xlm2I/AAAAAAAAAA0/YZHYogNpc5E/S220/eu.jpg'/></author><thr:total>2</thr:total></entry></feed>
