Special GNOME PERU FEST 2015 video captures almost all the conferences we presented in this fifth edition. Thanks to Erick Cachay for this contribution that let us show all the work we did for spreading the GNOME word in Lima Peru.

While there are certainly general coordination-skilled and time management-demand, I must say that there is not only my volunteer job, there is more people behind the scenes. Thanks to many people who did the designer job, marketing job, Wi -Fi and internet connection tests, who attendees to meetings to set permissions and denies in companies, the pre – event, during the event and post- event support, even the carry-on packages job was so important! Thanks for their good attitude and extra effort they put in all the activities.

I was lucky to had grown up every year with this event, thanks to the GNOME Foundation, IBM, FEDORA, INFOPUCP-PUCP, Grupo LA REPUBLICA, Floreria La Bouquette, and all the institutions that helped me a lot! Many thanks to my IBM managers, PUCP authorities and recognition for Linux Peruvian masters: Felipe SolariRodolfo PimentelGenghis Rios and Flavio Contreras.

Please enjoy the video. Thanks again Erick! Great volunteer worker during and post- event :)


Posted in τεχνολογια :: Technology, GNOME | Tagged , , , , , , | 1 Comment

Let’s contribute GNOME: Fixing bugs – session three

This time, we were only four: Mario, Fabian, Briggette and me. Mario was trying to install   jhbuild build gtk+ requieres packages like sysdeps, flex, anthy and many others. Briggette was trying to finish the Web basic site completing the BACK and FORWARD button, because Fabian showed us last time to set the GO button. Fabian was helped in the channel of IRC gnome developers as cfoch while I was trying to fix a bug… I was also trying to show Briggette how to connect to the IRC GNOME women channel. It was a shame that I had some problems with my laptop ( I am using a Fedora virtual machine but some plugins were missing)  so I could post my IRC experience later.


The complete procedure for fixing bugs (newbies style) is finally available :)

* I had one bug assigned: 685595

Following the tutorial: cloning is the first part, then get inside the directory to see the code

[yulytas@gnome gnome]$ git clone git://
[yulytas@gnome gnome]$ cd newcomers-tutorial/
[yulytas@gnome newcomers-tutorial]$ ls
 COPYING README gnome-image.png hello.js newcomers-tutorial.doap
[yulytas@gnome newcomers-tutorial]$ gjs hello.js
 bash: gjs: command not found

If you get the same message, just install gjs

[yulytas@gnome newcomers-tutorial]$dnf install gjs
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done

Now it is time to run again the program and see what is the error message:

[yulytas@gnome newcomers-tutorial]$ gjs hello.js 

(gjs:4155): GLib-GObject-WARNING **: The property GtkImage:stock is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gjs:4155): Gjs-WARNING **: JS ERROR: ReferenceError: application is not defined

The majority of cases the error message can give us a hint of how to solve them, so the error are related to the image, the WelcomeToTheGRid object and the quit action.

* This is the code with bugs on it:


const Gtk =;
const Lang = imports.lang;

const WelcomeToTheGrid = new Lang.Class({
    Name: 'Welcome to the Grid',

    // Create the application itself
    _init: function() {
        this.application = new Gtk.Application();

    // Connect 'activate' and 'startup' signals to the callback functions
    this.application.connect('activate', Lang.bind(this, this._onActivate));
    this.application.connect('startup', Lang.bind(this, this._onStartup));

    // Callback function for 'activate' signal presents windows when active
    _onActivate: function() {

    // Callback function for 'startup' signal builds the UI
    _onStartup: function() {
        this._buildUI ();

    // Build the application's UI
    _buildUI: function() {

        // Create the application window
        this._window = new Gtk.ApplicationWindow({
            application: this.application,
            window_position: Gtk.WindowPosition.CENTER,
            border_width: 10,
            title: "Welcome to JavaScript"});

        // Create the Grid
        this._grid = new Gtk.Grid ({ row_spacing: 20 });

        // Create an image
        this._image = new Gtk.Image ({ file: "gnome-image.jpg" });

        // Create a second image using a stock icon
        this._icon = new Gtk.Image ({ stock: 'gtk-about' });

        // Create a label
        this._label = new Gtk.Label ({ label: "Welcome to GNOME, too!" });

        // Create a button
        this._button = new Gtk.Button ({ label: ".. .and good-by" });
        this._button.connect ("clicked", Lang.bind(this, this._quit));

        // Attach the images and button to the grid
        this._grid.attach (this._image,   0, 0, 2, 1);
        this._grid.attach (this._icon,    0, 1, 1, 1);
        this._grid.attach (this._label,   1, 1, 1, 1);
        this._grid.attach (this._button,  0, 2, 2, 1);

        // Add the grid to the window
        this._window.add (this._grid);

        // Show the window and all child widgets

    _quit: function() {


// Run the application
let app = new WelcomeToTheGrid (); (ARGV);

Examining the current code, we see that the image is called with extension jpg and it was saved in the directory an image with the png extension. The other function to correct is quit, which is not specifying what application has to quit, and finally I edited the label .. . good -by to say …good-bye:


We can see what we corrected by using git diff

[yulytas@gnome newcomers-tutorial]$ git diff
diff --git a/hello.js b/hello.js
index 39fe8b9..d8a8b6a 100755
--- a/hello.js
+++ b/hello.js
@@ -39,7 +39,7 @@ const WelcomeToTheGrid = new Lang.Class({
 this._grid = new Gtk.Grid ({ row_spacing: 20 });
 // Create an image
- this._image = new Gtk.Image ({ file: "gnome-image.jpg" });
+ this._image = new Gtk.Image ({ file: "gnome-image.png" });
 // Create a second image using a stock icon
 this._icon = new Gtk.Image ({ stock: 'gtk-about' });
@@ -48,7 +48,7 @@ const WelcomeToTheGrid = new Lang.Class({
 this._label = new Gtk.Label ({ label: "Welcome to GNOME, too!" });
 // Create a button
- this._button = new Gtk.Button ({ label: ".. .and good-by" });
+ this._button = new Gtk.Button ({ label: "...and good-bye" });
 this._button.connect ("clicked", Lang.bind(this, this._quit));
 // Attach the images and button to the grid
@@ -64,8 +64,8 @@ const WelcomeToTheGrid = new Lang.Class({

Commit your changes with git commit and write the fixed changes on it:

[yulytas@gnome newcomers-tutorial]$ git commit --amend --signoff
[master fabd51a] Image extension corrected and button clicked action to quit is fixed.
 Date: Sun Jun 21 18:36:52 2015 -0500
 1 file changed, 4 insertions(+), 4 deletions(-)

As the newcomers-tutorial of GNOME indicated, create the patch which will be stored inside the home directory and them attach it to the bug.

[yulytas@gnome newcomers-tutorial]$ git format-patch --stdout HEAD~1 > ~/myPatch.patch

After creating the patch, click on Attachment to upload it in bugzilla:


Your patch is going to be evaluated for the Newcomers maintainers soon.

Posted in GNOME, τεχνολογια :: Technology | Tagged , , , , , , , , , | Leave a comment

Starting with Github

To start with github, you must create an account and then follow the steps on the official WebPage Please check if you have installed the git package on your laptop

empathy2As we have seen, we must install the package and then, set up our personal information:

$sudo dnf install git
$git config --global "YOUR NAME"
$git config -- global "YOUR MAIL"

Complete the name of the repository and the information related to it.        In my case I am setting as public, my first directory called my first_codes


Copy the link that github shows to clone in my terminal later:

Screen Shot 2015-06-20 at 8.39.28 PM

In this case I am creating a gnome directory and then doing the clone

[yulytas@gnome Documents]$ mkdir gnome
[yulytas@gnome Documents]$ cd gnome
[yulytas@gnome gnome]$ git clone
Cloning into 'first_codes'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), done.
Checking connectivity... done.

Then, I have to get inside the directory where I am going to upload

[yulytas@gnome gnome]$ cd first_codes/

Copy the code from your local position to the new directory to publish

[yulytas@gnome first_codes]$ mv /home/yulytas/Documents/ .
[yulytas@gnome first_codes]$ ls LICENSE

Now it is time to do the git add, git commit and git push it :)

[yulytas@gnome first_codes]$ git add 
[yulytas@gnome first_codes]$ git commit -a -m "First code in GTK with Python"
[master 798a625] First code in GTK with Python
 1 file changed, 19 insertions(+)
 create mode 100644
[yulytas@gnome first_codes]$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 514 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
 647f865..798a625 master -> master
[yulytas@gnome first_codes]$

Good luck!

Posted in GNOME, τεχνολογια :: Technology | Tagged , , , | 1 Comment

Connecting to IRC with Empathy (FEDORA)

Fedora 22 is finally in my laptop, at least virtually this time :)

I will reconnecting myself again with some GNOME channels. This time I am so glad to join my friend Olenka (@broman) for her very first time.

These are some steps in pictures to set Empathy:

1.- Fill up your personal information, name, last name and nickname:


2.- Select #IRC icon

empathy23.- Click ADD after entering your alias


4.- Close the window and click on EMPATHY/Rooms/Join:


5.- Click on Server to see the list of channels and the Room field is going to be updated


6.- Voila! There are only 6 gnome-women around the world this time: welcome @broman!


Posted in GNOME, τεχνολογια :: Technology | Tagged , , , | 1 Comment

Let’s contribute Peru GNOME – session two

Thanks to Cesar Fabian who guided us to do a basic Web browser using GTK+ and webkit.


Following our plan, he was explained about the technologies that are useful for our Web, when one of the participants asked about IDE to do this (because it is kind of hard to remember all the events and objects). So, Fabian told us that Christian Hergert was in charge of building an IDE to make easier the development stuff in GNOME.



Some of us had troubles with the packages that were missing during the compilation time. gcc main.c `pkg-config –cflags –libs gtk+-3.0` -o main

This was our first main.c program:

#include <gtk/gtk.h>
main(int argc, char ** argv)
 GtkWidget *window;
 gtk_init (&argc,&argv); 
 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
 gtk_window_set_title (GTK_WINDOW (window), "Hello world");
 g_signal_connect (window, "delete-event", gtk_main_quit,NULL);
 return 0;

In my particular case the libgtk-3 was missing

yulytas@yulytas:/home/yulytas$ sudo apt-get install libgtk-3-dev
 Need to get 10.1 MB of archives.
 After this operation, 40.0 MB of additional disk space will be used.
 Do you want to continue? [Y/n] y
 Get:1 suroboyo/main libcairo-script-interpreter2 amd64 1.12.16-2 [575 kB]

Some things I understood from this experience:

gtk_window is a container and we should respect the gtk hierarchy to add objects.

we can use “delete-event”or “destroy” when it is your first time to try this.

There is a widget that does not need the events delete or destroy:  the gtk application.

#include <gtk/gtk.h>
#include <webkit2/webkit2.h>
struct _Dummy {
  GtkWidget *web_view;
  GtkWidget *address_bar;


This is our basic code that shows a navigator

#include <gtk/gtk.h>
#include <webkit2/webkit2.h>

struct data {
	GtkWidget *address_bar;
	GtkWidget *web_view;

navigate_button_cb (GtkWidget *navigate_button, struct data *datos)
	GtkWidget* web_view = datos->web_view;
	GtkWidget* address_bar = datos->address_bar;
	webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), gtk_entry_get_text (GTK_ENTRY (address_bar)));

activate (GtkApplication *app, gpointer user_data)
	GtkWidget *window, *web_view, *box, *bar, *address_bar, *navigate_button;	
	struct data *datos;
	datos = malloc(sizeof(struct data));
	window = gtk_application_window_new (app);
	gtk_window_set_title (GTK_WINDOW (window), "web-browser");
	gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
	web_view = webkit_web_view_new();
	webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), "");
	box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	bar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	address_bar = gtk_entry_new ();
	navigate_button = gtk_button_new_with_label ("Go");
	datos->address_bar = address_bar;
	datos->web_view = web_view;
	g_signal_connect (navigate_button, "clicked", G_CALLBACK (navigate_button_cb), datos);
	gtk_box_pack_start (GTK_BOX (bar), address_bar, TRUE, TRUE, 0);
	gtk_box_pack_start (GTK_BOX (bar), navigate_button, FALSE, TRUE, 0);
	gtk_box_pack_start (GTK_BOX (box), bar, FALSE, FALSE, 0);
	gtk_box_pack_start (GTK_BOX (box), web_view, TRUE, TRUE, 0);
	gtk_container_add (GTK_CONTAINER (window), box);
	gtk_widget_show_all (window);	

main (int argc, char **argv)
	GtkApplication *app;
	int status;
	app = gtk_application_new ("org.gtk.web-browser", G_APPLICATION_FLAGS_NONE);
	g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
	status = g_application_run (G_APPLICATION (app), argc, argv);
	return 0;

After that we updated to click on the GO button and used address bar, which is an entry

GtkWidget *address_bar, *navigate

and gtk_box and its event start

To update and direct to the page is webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), uri);  when the address received the signal CLICK it is uploaded in  wegbkit_web_view_load_uri (WEBKIT_WEB_VIEW (user_data->web_view)

We can make the back button with webkit_web_view_go_back() or the forward function.

These are the objects that Fabian used to explain the code:

IMG_9361 IMG_9358

I feel so optimistic in saying that there will be 2 new women Peruvian GSoC next rounds :)IMG_9349IMG_9348

Briggette and Lizeth in the picture – UNI PERU.

Posted in τεχνολογια :: Technology, GNOME | Tagged , , | Leave a comment

Let’s contribute Peru with GNOME – session one

This time we just gather 4 people who wants to contribute with GNOME. Two of the attendances were from PUCP who use Unity and the others two were from UNI, who use GNOME with Fedora 20. All of them were programmers; so everyone were interested in developing for GNOME and not for documentation. According to the plan  Jose Quiñones explained the GNOME project, the GNOME interfaz, the GNOME community, GNOME applications and ways to contribute by IRC.


After that Cesar Fabian started the code contribution part, because all of them were interested in GNOME developer technologies. We started with glib, based on the GLIB Website. He explained us that Glib is a GNOME library written in C. We did a couple of examples: Hello Word and the following code using glist. Glists are linked lists that use the type void *. It was also explained values and basic types like gboleean where ONE represents TRUE and the rest of values are FALSE .

main(int arg, char **argv)
  GList *list = NULL, *l; 
  list = g_list_append(list, "mango"); 
  list = g_list_append(list, "papaya"); 
  list = g_list_append(list, "watermelon"); 
  list = g_list_append(list, "almond"); 
  list = g_list_append(list, "apple"); 
  for(l = list; l != NULL; l = l->next) 
   g_print("%s\n", (char *)l->data); 
   g_list_free(list); return 0; 

* What took us so long was the cloning part and the packages that were left in each cases. So, the first step is going to the page: and clone:

glib After that, get inside the new glib file created and do autogen:

[jinca@localhost ~]$ cd glib
 [jinca@localhost glib]$ ./

This was the first error message I got: If ‘LT_INIT’ is in ‘’, make sure its definition is in aclocal’s search path. tests/ ‘’ included from here autoreconf: automake failed with exit status: 1

To solve this, create this path  /home/jinca/opt and do the export:


 * If the system asked to install packages like libffi or gtk , just install them:

sudo yum install libffi-dev
sudo yum install gtk-doc-tools
sudo yum install libglib2.0-dev

Then, inside glib,  apply the configure and make commands:

cd glib
./configure -- prefix=$HOME/opt/
make install

So, after coding the examples Cesar gave us, compile and run the programs:

gcc main.c `pkg-config --cflags --libs glib-2.0` -o main

After that, we reviewed some string functions like strdup that duplicated strings, but we do not have time for more. We hope next session will be more productive and we are aiming to do GTK after glib and cairo.

Posted in GNOME, τεχνολογια :: Technology | 2 Comments

GNOME Asia 2015 impressions

I must to congratulate all the enthusiasm and effort from many young students supported by experienced people, leaded by Estu Fardani. There are lots of Linux users in Indonesia and I saw the willing to contribute with the GNOME project. I met Estu in person and I found more friendly local people: my new dear friend Deetah, Harris, Utian, Aris, Kukuh, Fahmi, Moco, Pico, Siska, Lenin & the awsome Sendy!


Left picture was taken in the BTECH, Bogor.

It was great to see GNOME friends again: Kat & Dave from UK, Andre & Tobias from Germany, Olav from Holland, Alexander from France and Shobba from India. They shared their years of experience with Linux and GNOME and they guided and answered all the questions of local people. I was in charge of GNOME Marketing; so far, GNOME has not received applicants for the OPW and the GSoC program . We also planned to do an event of the Release Party in Indonesia and Peru on September, 25th.  I hope others countries can join us with this, so the whole world can tweet for the entire day the hash-tag  #ReleaseGNOMEparty or #ReleaseGNOMEparty3.18 or maybe #ReleaseGNOMEparty2015


17407956016_0befc2b5ee_z Thank you herpiko for capturing that moment. You can see all the pictures in the Flickr group!

This event make me also meet the GNOME Asia people, Max, Bin Li, Edu Sun and the other guys also were sharing and promoting the Open SUSE distro. Also it was great to met Gstreamers guys: Mathew Waters from Australia, Olivier from Canada, Arun & Nirbheek from India. They shared links and materials to start contribution with GNOME applications like Banshee, Pitivi & Empathy.

image image

The event was setup according to the plan, the talks accomplished the schedule and the audience was aware of the event. The talks were presented by Syska, a charismatic person, and Sendy basically. There was enough food and water for attendances and the speakers received special edition of GNOME shoes!

I gave some presents of Fedora 21 to some Indonesian students :)


My lighting talk was not so good this time, I could blame my nervous to hear the thunder of the raining during my talk, or the difference of 12 hours of time zone from my Peru. The fact is I have to improve my speed, my tone, my accent and know more my audience (“pay it forward” is not a common movie in Indonesia). Maybe I would have not spent my time emphasis in rejection; but minutes before my talk, I heard during Kat’s talk “Contribute with GNOME” the feeling of “scaring to rejection” from an Indonesian women student. I had heard the same speech from many people around the world, they say that they do not know how to start with GNOME even if everything is documented. My intention was “encouraging people to dare applying and deal with rejections if they have the situation”. Besides that, I have to thank local committee for giving me extra minutes to prize people who responded my questions during my talk. 


prize2Pictures from Herpiko, t-shirt and notebook

The local committee took us to visit Indonesia in the miniature and it was so interesting to know more about Indonesia culture. Sumatra custom in Indonesia island impressed most of us: after get married they have a honey moon until getting pregnant. Then we shared a lunch celebrating Estu‘s birthday and we visited Jakarta town in the afternoon… yumy Nasi Goreng Spesial! I did not dare to try avocado juice…



Some suggestions to improve next events:

  • Get the correct size of the screen of projector. If you have a big auditorium, the screen also must be big enough, so everyone can see the slides. The screen saver can show the logo of the event during the breaks.
  • Get a remotely pointer to press the slides in case the expositor need it. Telling “next please” took a few seconds in my presentation.
  • Prepare at least one static camera for recording talks during the event.
  • Calculate the number of chairs based on the number of participants registered before the event.
  • Test before the event the volume of the microphone and if is too loud that can be heard in other rooms, the rooms must be separated adequately.
  • The location of the stands that show Linux products must be outside of the auditorium because of distraction attention.
  • If there is not enough personnel for guiding audience since the principal door to the auditorium, it would have great to have signals or little banners that show the path. Universitas is so huge.
  • It would be great if the arrangement for all people who is not local, we would have shared the same building for staying and maybe sharing dinners together. Buildings with Internet access in all the rooms can help. University room is OK.
  • Translation of talks, there were some Indonesian talks and other English talks. There are some tecnologies that translate talks, or maybe giving summaries of everytalk can help.
  • Do some kind of survey before and after the event, asking to participants how much they know about Linux and GNOME (before and after the event). Statistics are important after the event.

Visiting Depok, Bogor, Jakarta and Borobudur was an extraordinary experience! Motorcycles that can fly as mosquitoes that bite, the hot water that make me take more that 8 liters of water everyday, the zero alcohol in public places and the smell of the black cigarette on streets, the musulman culture that pray 5 times per day that make me start my day at 5 am because of the call, meeting the Buda temple and the Jakarta beach were incredible! Terima Kasih, kiri, tolong, keluar, saya, ayo, motor, bir, Selamat pagi, the botol, kusuh, wanita, whos (for cushis), missi, kamu bisa are a few words I will be so glad to hear and will definitely me reminder the Indonesia kindness and hospitality! Thank you GNOME news and pictures!manos


Posted in GNOME, τεχνολογια :: Technology | Tagged , , , , , , , , | 3 Comments