viernes, 28 de agosto de 2015

My thoughts of GUADEC 2015

So, GUADEC 2015 is over and I'm back to my country after 2 weeks exploring Europe in my "no extra penny must be spent, no souvenirs, no shopping!" mode, and I really enjoyed the whole experience, it was memorable and I think it marked a sort of inflection point in life.

I finally met my Viking friends: Mattias and Jonas, crew of an awesome långskepp: GNOME Maps. God, they are two memorable characters, hahaha. And also met lots of people there, from vastly different cultures and places, people really enthusiast, funny, especially smart (really smart), humble and people who really love what they are doing. I met new friends around the conference and the hostel, a really enjoyable people to spend your time, like Adri(e|a)n Plazas (sorry, I never going to spell your name correctly :(), Siska, Udayan (my roommate), Tuan, Julita and more!!

The only thing I maybe regret is to not have the english skills to being able to enjoy the full experience, it's hard (really hard) to me to speak and listen to english, particularly listen, maybe sometimes I understood the half of the things people were talking about and sometimes just think "Hey, they could be speaking Swedish and it would be the same to me!". So if you think I was a bit awkward during the conference, 15% of this awkwardness is because of this, I'm still trying to figure out the other 85% :) . Fortunately the people is always nice and understand this limitation, but you know, I prefer to have proper english skills instead.

Anyway, I really enjoyed GUADEC, the talks and the side activities, and I hope I can be there for the next year and enjoy it even more.

miércoles, 29 de julio de 2015

I'm going to GUADEC 2015!

Hi people! I just wanted to tell you that I'm going to GUADEC 2015 in Gothenburg thanks to the great help of GNOME Foundation who is sponsoring a nice part of my travel expenses!

This is going to be my first GUADEC, my first time in Sweden and my first time on the other side of the Ocean. I know I'm going to have a great time with all the GNOMErs and with the Swedish culture. I'm finally going to meet Jonas, Mattias, Zeeshan and all the people who helped me to enjoy my favorite job (GSoC 2014), that's priceless.

See you in Gothenburg!

martes, 6 de enero de 2015

GNOME gets Foursquare integration

If you were reading my GSoC 2014 reports, you surely remember that I was working on integrating GNOME Maps with social networks, so you can share the place you are in Facebook and Foursquare (and Twitter if you enable an option in Maps!). This surely is not going to be an everyday feature, but I learned a lot during its development (and during the whole GSoC).

In my last GSoC report I told you that I hope to have this feature for GNOME 3.16, fortunately it got merged in upstream a couple of weeks ago. The work consist of two parts:

  • GNOME Online Accounts (GOA) Foursquare provider: this allow users to link his/her Foursquare account to the system by using GNOME Control Center. Applications and libraries then get the account information through GOA API (that works internally using D-Bus to contact GOA daemon).
  • Check-in feature for GNOME Maps: this uses the configured Facebook and Foursquare online accounts to post check-ins in the respective streams.

If you have geolocation support in GNOME and press the marker that represents your current location or press the upper left button in Maps while you have a Facebook or Foursquare account configured, you'll see a Check in button in the bubble that appears on the map view. Press it and follow the steps. I hope we find other ways to access this feature, right now is pretty much hidden (hey, everybody love hidden features!).

Using Foursquare account in your application

One thing that it's still pending to implement is a basic native GObject based library to use the Foursquare API and to get easily access to GOA account like what libgfbgraph does with Facebook. Anyway, it's a really easy thing to do even without a library to help you.

The idea is simple: GOA only provides you authentication information about the account, depending on the case, this information could be a username, password, access token, etc. With that information, you can do whatever you want, meaning, use it to make API calls to a web service or send it to the NSA.

Once you get the Foursquare account object (a GoaObject instance) by using the GoaClient API you need to extract the access token for the account by using goa_oauth2_based_call_get_access_token and generate the URL for the Foursquare API call, something like:

https://api.foursquare.com/v2/{call_name}?
    {call_parameters}&
    v={api_version}&
    oauth_token={goa_token}

For instance:

https://api.foursquare.com/v2/checkins/add?
    shout=The%20check-in%20message&
    venueId=4567&
    v=20140226&
    oauth_token=OI5435O43H25OI432HU5IOU234H52U

I recommend you to use librest to perform the API calls.

You can learn more by checking out the GNOME Maps code, specially src/foursquareGoaAuthorizer.js, src/serviceBackend.js and src/foursquareBackend.js files.

Cheers!