Python-GnuTLS e gobject.io_add_watch

Julho 15th, 2008

antes sempre eu usava threads para monitorar conexões seguras, e lá e vem dava crashs causados por falta de sinconizações com a gtk.main(), então eu achei um método seguro e pratico  para manipular sockets usando as funções de loops da pygobject, como sempre gosto de compartilhar meus conhecimentos escrevi um exemplo abaixo.
Read the rest of this entry »

Meus 10 comandos mais usados!

Julho 13th, 2008

    147 ls
100 cd
35 svn
35 ./openlh-server #Ainda estou trabalhando feio nesse projeto
25 vim
22 glade-3
21 scite
21 python
12 emacs #Começei a brincar com ele!
11 su

para ver seus comandos mais utilizados em seu “UnixLike” use esse comando:

history|awk ‘{print $2}’|awk ‘BEGIN {FS=”|”} {print $1}’|sort|uniq -c|sort -rn|head -10

PCMan File Manager Patched!

Julho 13th, 2008

Eu enviei um patch para o pcman file manager algumas semanas atras que modificava os dialogos para obterem um interface mais amigavel e compatível com o Gnome HIG.

Então hoje recebi um email do desenvolvedor notificando que meu patch foi aceito!

vejam as screenshots depois de meu patch:

after-preferences.png


desktop-preferences-after.png

screenshot-file-properties4.png

screenshot-file-properties-after.png

Antes do meu patch:

desktop.png

file-properties.png

screenshot-preference.png

screenshot-file-properties.png

Também estou nessa!

Junho 26th, 2008

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

Fotos FGSL

Junho 6th, 2008

Hoje recebi um email do LeoSerra com algumas fotos do “Fórum Goiano de Software Livre”

dsc08901.jpg

dsc08942.jpg

dsc08943.jpg

[relatório] FGSL

Junho 1st, 2008

Ontem eu estive presente no 5º Fórum Goiano de Software Livre em Goiânia, teve muitas palestras de alto nível, foi muito bom encontrar os velhos amigos, e conhecer pessoalmente várias pessoas que antes eu só conhecia pela internet.

Antes do Almoço assisti as 3 palestras do “Trio Parada Dura” (Kov, Lincoln e Gabi), e depois do almoço, fui em 2 oficinas: “Empacotamento Debian e como contribuire a de “Ferramentas de Segurança de Redes”.

[off] Dragon Ball o filme

Maio 30th, 2008

No ano que vem a Fox vai lançar “Dragon Ball - O Filme”,  olhe o elenco do filme abaixo.

goku-1.jpg

masterroshi.jpg

roadshow1-1.jpg

roadshow2-1.jpg

roadshow3.jpg

roadshow4.jpg

Fonte: http://www.dragonballmovieblog.com/

Usando GtkAction

Maio 24th, 2008

O GtkAction foi criado para controlar ações em widgets, facilitando a criação de vários widgets que fazem a mesma coisa, vou postar exemplos abaixo para ficarem dentro do assunto.

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import gtk
 
class teste:
    def __init__(self):
        self.window = gtk.Window()
        self.window.set_default_size(200, 100)
        self.vbox = gtk.VBox()
        self.window.add(self.vbox)
 
        self.toolbar = gtk.Toolbar()
        self.vbox.pack_start(self.toolbar)
 
        self.button = gtk.Button("------Clique me------")
        self.button.connect("clicked", self.clicked)
        self.vbox.pack_start(self.button)
 
        self.button = gtk.Button("Sair")
        self.button.connect("clicked", gtk.main_quit)
        self.vbox.pack_start(self.button)
 
        self.menu = gtk.Menu()
        ##ADD
        self.add_action = gtk.Action("Adicione-me",
                                     "_Adicione-me",
                                     "clicando aqui vai adicionar alguma coisa",
                                      gtk.STOCK_ADD)
 
        self.add_action.connect("activate", self.on_add_activate)
 
        self.add_button = self.add_action.create_menu_item()
        self.add_toolitem = self.add_action.create_tool_item()
        self.toolbar.insert(self.add_toolitem, 0)
        ##DEL
        self.del_action = gtk.Action("Remova-me",
                                     "_Remova-me",
                                     "clicando aqui vai remover alguma coisa",
                                      gtk.STOCK_REMOVE)
 
        self.del_action.connect("activate", self.on_del_activate)
 
        self.del_button = self.del_action.create_menu_item()
        self.del_toolitem = self.del_action.create_tool_item()
        self.toolbar.insert(self.del_toolitem, 1)
 
        self.menu.append(self.add_button)
        self.menu.append(self.del_button)
        self.menu.show_all()
 
    def on_add_activate(self, obj):
        print "add"
 
    def on_del_activate(self, obj):
        print "del"
 
    def clicked(self, obj):
        self.menu.popup(None, None, None, 1, gtk.get_current_event_time())
 
    def show(self):
        self.window.show_all()
 
if __name__ == "__main__":
    app = teste()
    app.show()
    gtk.main()

C

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <gtk/gtk.h>
 
GtkWidget *menu;
 
static void
on_clicked () {
  gtk_menu_popup ((GtkMenu *) menu, NULL, NULL, NULL, NULL, 1,
                  gtk_get_current_event_time ());
}
 
static void
on_add_activate () {
  g_print ("add\n");
}
 
static void
on_del_activate () {
  g_print ("del\n");
}
 
int main (int *argc, char ***argv) {
  gtk_init (&argc, &argv);
 
  GtkWidget *window, *vbox, *toolbox, *button;
  GtkAction *add_action, *del_action;
  GtkWidget *add_menu, *add_toolitem, *del_menu, *del_toolitem;
 
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_default_size ((GtkWindow *) window, 200, 100);
 
  vbox = gtk_vbox_new (0, FALSE);
  gtk_container_add ((GtkContainer *) window,
                     (GtkWidget *) vbox);
 
  toolbox = gtk_toolbar_new ();
  gtk_box_pack_start ((GtkBox *) vbox,
                      (GtkWidget *) toolbox,
                      FALSE, FALSE, 0);
 
  //GtkAction
  add_action = gtk_action_new ("add_action",
                               "Adicione-me",
                               "Clicando aqui vai adicionar alguma coisa",
                                GTK_STOCK_ADD);
 
  del_action = gtk_action_new ("del_action",
                               "Remova-me",
                               "Clicando aqui vai remover alguma coisa",
                                GTK_STOCK_REMOVE);
 
  g_signal_connect (add_action, "activate", G_CALLBACK (on_add_activate), NULL);
  g_signal_connect (del_action, "activate", G_CALLBACK (on_del_activate), NULL);
 
  menu = gtk_menu_new ();
  add_menu = gtk_action_create_menu_item ((GtkAction *) add_action);
  del_menu = gtk_action_create_menu_item ((GtkAction *) del_action);
 
  gtk_menu_shell_insert ((GtkMenuShell *) menu,
                         (GtkWidget *) add_menu, 0);
 
  gtk_menu_shell_insert ((GtkMenuShell *) menu,
                         (GtkWidget *) del_menu, 1);
  //ToolBar
  add_toolitem = gtk_action_create_tool_item ((GtkAction *) add_action);
  del_toolitem = gtk_action_create_tool_item ((GtkAction *) del_action);
 
  gtk_toolbar_insert ((GtkToolbar *) toolbox,
                      (GtkToolItem *) add_toolitem, 0);
 
  gtk_toolbar_insert ((GtkToolbar *) toolbox,
                      (GtkToolItem *) del_toolitem, 1);
 
  button = gtk_button_new_with_mnemonic ("-------_Clique-me--------");
  gtk_box_pack_start ((GtkBox *) vbox, (GtkWidget *) button, FALSE, FALSE, 0);
 
  g_signal_connect (button, "clicked", G_CALLBACK (on_clicked), NULL);
 
  button = gtk_button_new_with_mnemonic ("---------_Sair----------");
  gtk_box_pack_start ((GtkBox *) vbox, (GtkWidget *) button, FALSE, FALSE, 0);
 
  g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
 
  gtk_widget_show_all ((GtkWidget *) window);
 
  gtk_main ();
  return 0;
}

Download dos arquivos

[Screenshots] PackageKit 0.2.0 Alpm backend

Maio 23rd, 2008

Saiu a nova versão do packagekit, e houve grandes melhorias para a backend do archlinux, Veja umas screenshots abaixo.

packagekit

repo

captura_da_tela-atualizar-sistema.png

captura_da_tela-sobre-o-gpk-application.png

captura_da_tela-backend-status.png

captura_da_tela-preferencias-da-atualizacao-de-programas.png

[meme] O que você faz de diferente quando não está na frente do computador?

Maio 21st, 2008

como o Walter Cruz também escreveu, eu também vou falar o que gosto de fazer enquanto eu não estou no computador.

Música:

Sou Fanático por violão e viola, toco violão desde os 11 anos, toco quase todo tipo de música no violão, desde músicas antigas dos finados “Tião Carreiro, Raul Seixas, Cazuza, Mamonas assasinas”, até músicas mais novas que está tocando na atualidade, Meu sonho mesmo é aprender a tocar uma viola, se tudo der certo, esse ano eu compro uma para mim.

Cozinha

Depois que virei OvoLactoVegetariano (Depois quero virar LactoVegetariano!), me despertou uma grande vontade de aprender a cozinhar bem!, para convencer muita gente que a comida vegetariana não é ruim.

Natureza

Amo passear observando a Natureza, deixa qualquer mente tranquila né ?, as vezes o único remédio para curar o stress é uma boa passeada.