Sunday, November 25, 2012

Chicago GNOME Hackfest #3

Our third GNOME Hackfest in Chicago is scheduled for Saturday, December 15, from 11 am to 3 pm. It will be at Pumping Station: One (3519 N. Elston, Chicago). 

John Lambrechts will be giving a talk on window managers, and Chris Webber is tentatively scheduled to 
give an Intro to Emacs talk. 

I recently added some links for newcomers to our GNOME wiki page, so if this will be your first time 
coming to one of our events, please check out the links beforehand :)

 As Jim mentioned, some of the women involved thought that "GNIGHTS of GNOME" sounded like an event 
for men only, so we are looking for a new name. Any non-gendered suggestions are welcome :) That said, 
our last event was 40% women and hopefully we will be able to encourage even more diversity at our 
future meetings. This is, as always, a woman and LBGTQ friendly event. Hope to see you there, and happy 

Tuesday, November 13, 2012

GNIGHTS of GNOME Hackfest, #2

The second GNIGHTS of GNOME hackfest is happening this coming Saturday, from 11 am to 5 pm at Pumping Station: One (feel free to come for all or stop by -- the schedule is posted HERE (on the "canonical with a lowercase 'c'" Chicago GNU/LUG website)) . Jim Campbell will be giving a talk on DConf and GSettings for Sysadmins, and there will be food and coffee. Come and hack with us if you are in Chicago :) 

Thanks to the GNOME Foundation for sponsoring snacks, and to PS1 for letting us use their space!

Wednesday, October 31, 2012

GNIGHTS of GNOME Hackfest Report

We had our first GNIGHTS of GNOME hackfest last Saturday at Pumping Station: One here in Chicago. We had around ten newcomers who came to the hackfest. People had various levels of interest and experience: there were a few professional developers and several students. I've been following up with some of our attendees and helping them get JHBuild environments set up, helping to direct them to projects within GNOME that they are interested in, etc. We are planning to meet once a month going forward, and I think we are off to a good start in building the community around GNOME here in Chicago. Thanks to everyone who came! If you are interested in coming to a future meeting, we will be posting updates on the new Chicago LUG site. See you next time.

Thursday, October 18, 2012

GNIGHTS of GNOME Hackfest October 27

Jim Campbell has been working lately on organizing a Chicago GNOME hackers group called GNIGHTS of GNOME. We had an informal first meeting last month at FreeGeek Chicago's Software Freedom Day (our group consisted of Jim, Brian Cameron, Chris Webber of MediaGoblin and me, with lots of local hackers and FOSS enthusiasts stopping by to hang out, ask questions, and talk about their own projects). Starting on Saturday, October 27 (11 am start time, @ 3519 N Elston -- we'll be hacking until early evening), we are going to be meeting once or twice a month at Pumping Station:One, the local North Side hackerspace here in Chicago.

FreeGeek Chicago has also offered to let our group attend their weekly hacknights. This semester I have classes until late on Wednesdays, but Jim and Brian may be attending these pretty regularly, and I will hopefully make it to a few over Winter Break.

If you are in Chicago, come and hack with us!

Wednesday, October 17, 2012

Support MediaGoblin :)

GNU MediaGoblin just  launched a crowdfunding campaign!  The Free Software Foundation is providing MediaGoblin with the infrastructure to run the campaign --so rather than donating through a for-profit with a proprietary backend like Kickstarter, you can use the FSF's free software backed tools.
MediaGoblin provides a free, decentralized media publishing service. Chris Webber's vision is that it will be used like WordPress is used for blogging: many people run their own instances and many more will use the hosted service. Why should you donate? The friendly MediaGoblin developers put together an awesome video explaining why the project is so important both to free culture and to us as users (it is posted on the site that I link to above -- I especially like the star wars-ish space laser that obliterates kitten videos :) Why do I think you should donate? In today's climate copyright holders have more and more control over what content we can post on the web, and how that content is consumed. Having compelling, easy-to-use, beautiful free software benefits us a community as well as each of us as end users. Maintaining ownership over our own content is becoming difficult. The MediGoblin project lets us share our personal and professional media with our friends, families, and community. When we use it we are able to share and still maintain our power to modify, disseminate, and own our content. We can use it and therefore avoid automated and fallacious takedowns by media companies and governments. We are able to use the web the way it should be used: to speak freely about the issues that concern us, to express ourselves, and to communicate with people who matter to us...So donate early and often :)

Sunday, August 19, 2012

GSoC Final report


Tomorrow is firm pencils down, so here is my update:

Last week my properties dialog was added to Documents. It's in master now, so if please test it! If you have any suggestions for improvement, please file a bug.

My work on sharing Google Docs ran into several snags and is not finished. First, I was unable to use Gnome Online Accounts for authentication for Google Drive. Because there is not much documentation for using oauth2 for Gmail, Evolution uses oauth1. Google Drive only has support for oauth2. After realizing this, I moved on to writing a different dialog for sharing using the GData API and gtk. This has been slow going for me. Although GData is very well documented, I have had a hard time understanding it and have therefore not finished. The gtk code is finished. Hopefully I will finish this up soon. I learned a tremendous amount about GNOME and about coding in general, and the experience was really great. My mentor did an awesome job of working with me even though I am a very inexperienced coder. I am starting my Masters degree in Computer Science next week (my BFA is in painting in painting and drawing), so I hope that I will learn more skills and become a more valuable contributor. Thanks to everyone in the community who helped and encouraged me this summer, it's always a fun and humbling experience :)

Chicago Free Software Stuff

I'm going to be doing a short talk on GNOME Love at Software Freedom Day in Chicago on September 15. Brian Cameron is going to be leading a GNOME hackfest that day. Jim Campbell suggested that we start a monthly hack night in Chicago, so this will be our first meeting. Chris Webber  named it Gnome Gnights, so if you see our tag somewhere, you'll know it's us :) (edit: I just got an email from Chris that says that the credit for this pun actually goes to Jim :)The hackfest at Software Freedom day will be our first meeting, so if you are interested in GNOME hacking and you are in Chicago, please come by!


Thursday, August 2, 2012

UX Hackfest and GUADEC

Last night I returned from Spain. The trip was very productive for me; in total, I spent nine days hacking, discussing new ideas, attending the end, I feel that I came away with a clearer idea of the passion and vision that makes GNOME such an amazing community.

UX Hackfest

The first day of the hackfest we started with introductions, then split into two groups. While the other group discussed menus, Jakub Steiner, Jon McCann, Florian Mullner, Anna Zacchi, Garrett LaSage and I discussed improvements for Gtk FileChooser. The discussion involved questions of finding and reminding as it applies to selection or "picking" of files. The process of selection is similar to search, but takes place within the limited context of the filesystem; the user is presented with a view of that filesystem, and one roles of the designer is to anticipate their needs and present them with useful options for filtering results. These options should anticipate the needs of "frequent filers", "spring cleaners" and "non-filers". I find that the new style of GNOME 3 applications is more flexible that the strictly hierarchical, directory-based presentation of the system that we had in GNOME 2. As ideas of presentation are iterated, I am seeing a detailed and sophisticated rethinking of various use cases. How do we meet the needs of non-filers (who, as Anna pointed out, tend to create visual systems of reminding that do not rely on the file system hierarchy)? How, at the same time, do we lead frequent filers to options that map their directories while still providing a view that is touch-friendly, that doesn't require extensive navigation? As Jon eloquently described in his recent post, much of this functionality is specific to search. How do we extend that functionality in the context of "picking", how do we maintain consistency for our users?

The ideas that we explored involved presenting useful options for filtering results. The initial view that we present results ordered by date used. The menu (shown on the right) allows the user to re-order the search by relevance, name, date last modified, date last accessed, etc. The sidebar (shown on the left) allows the user to view files and folders that reside in specific locations/applications, in specific devices, and also to view items which have been bookmarked by the user.

On the second day of the hackfest we discussed Jasper StPierre's work on Initial Setup. There was also a detailed discussion of search. During that second discussion we looked at search in Nautilus, Documents, Shell, and Photos. As this has already been discussed at length in other posts, I would like to thank the Design Team for including me in this event, and also thank our sponsors for allowing me to attend.


GUADEC itself started the day after the UX Hackfest. Besides attending many exceptional talks such as Marina's talk on The State of Outreach and Federico's session on Desktop Systems Based on Gnome Technologies, I also went to three great talks on Design: Allan Day's talk on Every Detail Matters, Beyond Dead Reckoning given by Allan, Jon McCann, and Jakub Steiner, and Tricking a Developer into becoming a Designer by Seif Lofty and Allan Day.

My mentor, Cosimo Cecchi, gave a talk on Documents and led a session for the interns working on it. During the session, we discussed improvements for the application as well as our current projects. Some improvements suggested were creating an "archive" collection to automagically aggregate documents which have not been used in over a month. This could enhance user experience by providing a "slip" feature, which would unobtrusively move disused documents out of the way of the user. Some of the other discussions involved tagging folders to provide a transparent method of searching for a folder name and its contents; rethinking the presentation of collections; allowing the user to add bookmarks; and improving search. 

Another valuable aspect of the conference was hearing from other members of the community about their involvement in the project. Those discussions are obviously too numerous to mention here, but still, I wanted to express my appreciation. It was pretty amazing to see how dedicated and enthusiastic the members of the community are, and I found all of the conversations to be constructive and inspiring. Till next year, Salute :)

Monday, July 9, 2012

GSoC Report #4: Sharing Documents

 I spent the last week of June re-reading and cleaning up my code for the properties dialog and also planning sharing. My mentor, Cosimo, and Jon McCann suggested that I launch a webkit gtk+ webview containing the sharing dialog provided by the respective applications (e.g. Google Drive, etc). This dialog is parented to the main window of Documents. The webview itself is modelled on the new Online Accounts "add an account" dialog in System Settings. I also stole a lot of code from the html renderer in Sushi.

The first week of this was actually kind of a debacle -- I ran into a lot of problems with JHBuild. I finally have a successful build of gnome-online-accounts and gnome-control-center, but I was surprised to learn that to run gnome-online-accounts I have to replace the process using $jhbuild /opt/gnome/libexec/goa-daemon --replace and then use jhbuild run gnome-control-center to use the current version of the program. Consequently, I've been working with lots of windows open -- a terminal running gnome-online-accounts and control-center, a terminal cd'd into checkout/gnome/gnome-documents that I use to make and run Documents so I can test my code, and then terminals and emacs windows containing the code I'm working on so I can type, save, and git commit. Today I was having trouble with my miners, so I ended up running those with ZPJ_MINER_PERSIST=1 /opt/gnome/libexec/gd-tracker-zpj-miner and GDATA_MINER_PERSIST=1 /opt/gnome/libexec/gd-tracker-gdata-miner. It's a bit of a coding menagerie around here :)

So at this point  I am done with my first version of the gtk code for the dialog. During my meeting with Cosimo today we came up with a tentative plan for showing the native sharing dialog for Google Drive. There is no publicly accessible link for showing the sharing dialog associated with a particular document, so I asked posted a question on Stack Overflow
asking for advice. Claudio Cherubino, one of the developers at Google, answered right away (awesome!) and directed me to the new Drive API, which includes a launcher and sharing dialog for apps. It might be tricky to use this, but I think the benefits will outweigh the difficulty. 

The last thing I've been working on is helping to plan an OpenHatch Python Workshop here in Chicago. Sheila Miguez (a local programmer and FOSS activist) and Aisha Halim (who organized Flourish! this year) asked me to join them in planning the event, which will be here in Chicago August 17 - 18 at Orbitz. If you want to help out, sign up for the mailing list :) I'll post more details when we have them. Hope to see you there!

Monday, June 25, 2012

GSoC Report #3: Documents Properties Dialog
I finished my first GSoC task, the new Properties Dialog for Documents. This is a first iteration based on a design by Jon McCann for the Nautilus properties menu. You may notice that I have not included some of the features of the design, such as the top bar :) Because these features are going to be implemented in Mutter in the future, I did not write code to mimic them with the current GTK.

The dialog displays Title, Author, Location, Source, Date Modified, Date Created, and Source. The Title metadata is editable for local documents, but not for remote documents. Likewise, Source displays a directory address for local documents, and otherwise displays the name of the remote location.

Currently, the edited title is written back to the database as the user types.

This coming week I plan to clean up the code a bit and start on my second task, which is writing a dialog which allows users to share documents via Google Docs, email clients, and (hopefully) SkyDrive.

I am hoping to complete the Sharing dialog before GUADEC so I can get feedback and spend the last month of my GSoC refining the implementation.

Tuesday, June 12, 2012

Thanks to the Foundation for Sponsoring Me...

I will be in A Coruna for the UX Hackfest and GUADEC. Hope to see everyone there :)

Saturday, June 9, 2012

GSoC Report #2

I spent the last week writing my first prototype for the properties dialog for  Documents. I decided to write the code in three steps: (1) to write the code to query Tracker for the metadata and display such information to the user; (2) to write the dialog code in gtk so that it followed the Design Team's proposed pattern for properties dialogs; and (3) to write the code which will allow in place editing of the metadata by writing new data back to Tracker (insert text by simply typing it...).

My learning curve has been somewhat steep. Last weekend I sent my mentor, Cosimo Cecchi, an email asking if I should be using an IDE (it seemed unlikely that there was an IDE that I could use for SPARQL, GJS, and GTK, but I thought that I might be using the terminal and Gedit out of ignorance)...Cosimo recommended Emacs. So there you have it; apparently what I was doing was basically logical...only now I am learning to use Emacs :/ Sometimes I am tempted to just try to insert break points somewhere, anywhere, out of sheer desperation :)

I really like programming using the terminal and JHBuild (though I find JHBuild to be really cryptic and frustrating at times). Stripping away the layers that an IDE adds makes the debugging process a bit harder but very interesting: today I got an error while trying to update my build, and Cosimo suggested that I look at a pkgconfig file ( /opt/gnome/lib/pkgconfig/gobject-introspection-1.0.pc) to find out what version of the module I had. During the past few months I have read a lot of JHBuild errors telling me to adjust my pkgconfig path environmental variable, so I was pleased to finally discover what role pkgconfig actually plays in my system and how I can hack it :) haha.

Climbing the steep part of the learning curve is frustrating at times and slower than I would like! I have completed step one of my dialog and I am in the process of testing it so that it works with new code that has been added to Documents in the past few weeks. Next week I will finish testing and work on style, and the third week I will complete my last step.

Saturday, May 26, 2012

Documents GSoC Week One

I started off week one of GSoC with a bad flu :( so I spent Monday coding and sleeping and trying to design and sleeping. By Wednesday I was pretty much better and got some good feedback on the design stuff from Allan Day and Jon McCann. I was behind on coding, so I spent the last few days trying to play catch-up, so I haven't touched the designs yet. I've been focusing on trying to add some basic functionality -- showing sharing information from Google docs in the listview, adding a properties button to the multi-select toolbar, popping up a basic menu. My code and designs (such as they are) are on Github . This is the first time I've pushed work to a remote branch, so that was another exciting thing I learned this week:) Next week I plan to make some changes to the designs, and, hopefully helped by my lack of flu and week of actual coding experience, to...well, hopefully I'll get a lot of work done :)

Wednesday I got to give a lightning talk on my project at Google's Chicago office. The audience was made up of student members of the ACM. When I first arrived I thought that there were quite a lot of students accepted to GSoC in Chicago (there were around 100 students in attendance). The talk was a lot of fun to give, and I got a lot of enthusiastic questions about Documents, GNOME 3, and Womens Outreach.

Last weekend Jim Campbell and I were asked by Chris Webber of Creative Commons to represent GNOME at a FLOSS activists dinner here in Chicago. Because the OSI board was in town for their annual meeting, they also joined in. Chicago's FLOSS community seems pretty small (although I am new and haven't met everyone yet, -- there were around twenty of us at the dinner and maybe half were from out of town), so it was great to meet up and discuss Free and Open Source software and culture in person. I'm really pleased to be getting more involved in the community here at home.

Thursday, May 10, 2012

GSoC 2012!

This summer I am going to be working on GNOME's awesome application, Documents, as a GSoC student. Cosimo Cecchi is mentoring me. I'm really excited to have the opportunity to work on GNOME again, to create something cool, and to learn from an amazing mentor :)

I spent a good amount of time over the school year working with Design Team members on icons for the 3.4 release of the High Contrast themes. Cosimo wrote the code for that project -- in fact, while I was busy with my GSoC application and finals at school, Cosimo and Jakub Steiner continued to work on the themes. You can see Jakub's mockups for the newly restyled High Contrast widget sets in  here (well, if you have Inkscape you can :). I'm really looking forward to seeing these in 3.6! This summer, though, I am going to be changing gears and working on a coding project. The objective is to produce two user interfaces viewing and editing file metadata in Documents.The idea for the project came from this bug.

So, to prepare for my GSoC, I began by building Documents with JHBuild. This turned out to be a fairly long process, but it is quite nice to be able to quickly test the changes that I make to the software. It's also great to hang out on the bleeding edge of GNOME and see code changes as they happen.

I spent last week reading the documentation on RDF, SPARQL, Tracker, Eloquent Javascript, and the GJS Styleguide :) This week I am reading through the source code and looking up unfamiliar parts in DevHelp. I started my reading with the query object, since the code is comparatively straightforward, and I got to use my new SPARQL and RDF knowledge :) Now that I'm starting to wrap my head around the concepts, the code is less "impossible" and more "wow, this is complex!"

Next Tuesday or so I plan to talk with the Design Team about what we want information we want to expose for our users (Cosimo and I were talking about the "shared with" feature in Google Docs, for example) and then start on the mockups. Allan Day has offered to give me some feedback, and I hope that Jon McCann will also have some cool ideas for me. After that I will be ready to dive into coding!

Thursday, March 1, 2012

New Things GNOME

I haven't blogged in a long time,so I thought I would post about what I've been doing...
I spent a lot of time in the last few months working on integrating my High Contrast work into the Symbolic Theme. Jakub Steiner and Lapo Calamandrei have been very generous with their time and expertise --giving me technical pointers, critiquing my work, editing, and adding new icons to the set. I was looking at the Gnome-Themes-Standard git on, and it looks like Cosimo Cecchi wrote his build-time hack for High Contrast (I get most of my information about GNOME by reading git commits and Bugzilla, so...). The base set for the High Contrast and High Contrast Inverse Themes will still be short some icons, but what we have in 3.4 will be a big improvement :)
My membership application was accepted by the GNOME Foundation a couple weeks ago. The inestimable Marina Zhurakhinskaya sent an email encouraging GOPW interns and past GSoC women to apply, and I was happy to see that a number of us did.
Marina also asked a few of us to help out with a comic that explains the GOPW application process in a simple way. It was fun to work on a project with other women --a rare experience in GNOME! It was also great to meet Christy and Tamara, and to touch base with Liansu again.
My abstract for the talk I'm giving at Flourish! was accepted yesterday. I'm going to be presenting GNOME 3 and talking about ways for students to contribute. I'm looking forward to meeting more members of the Chicago FLOSS community. This is going to be the first public talk I've ever done, so I guess it's good that I minored in performance art in college. (I did minor in performance art, but that is a joke:)
**I just got an email saying that my talk is scheduled for 1 P.M. on Saturday, March 31 at Flourish! in Illinois A of Student Center East. Directions here: Please come! It will be nice to meet everyone :)