Skip to content

Instantly share code, notes, and snippets.

@ignatenkobrain
Created July 20, 2015 11:28
Show Gist options
  • Save ignatenkobrain/b7d19da4eadf8234c609 to your computer and use it in GitHub Desktop.
Save ignatenkobrain/b7d19da4eadf8234c609 to your computer and use it in GitHub Desktop.
14:28:06 DEBUG __init__.py:41 gnomenews.application.__init__(<Application object at 0x7fd7e0b30630 (uninitialized at 0x0)>), returned None
14:28:06 DEBUG __init__.py:41 gnomenews.application.do_startup(<Application object at 0x7fd7e0b30630 (gnomenews+application+Application at 0x55d4409512a0)>), returned None
14:28:06 DEBUG __init__.py:41 |gnomenews.tracker.__init__(<Tracker object at 0x7fd7e0bb6990 (uninitialized at 0x0)>), returned None
14:28:06 DEBUG __init__.py:41 |gnomenews.window.restore_saved_size(<Window object at 0x7fd7e0b34ca8 (gnomenews+window+Window at 0x55d440bb6270)>), returned None
14:28:06 DEBUG __init__.py:41 |||||gnomenews.toolbar.reset_header_title(<Toolbar object at 0x7fd7e0b3ac60 (gnomenews+toolbar+Toolbar at 0x55d440a97960)>), returned None
14:28:06 DEBUG __init__.py:41 ||||gnomenews.toolbar._update(<Toolbar object at 0x7fd7e0b3ac60 (gnomenews+toolbar+Toolbar at 0x55d440a97960)>), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.toolbar.set_state(<Toolbar object at 0x7fd7e0b3ac60 (gnomenews+toolbar+Toolbar at 0x55d440a97960)>, 0), returned None
14:28:06 DEBUG __init__.py:41 ||gnomenews.toolbar.__init__(<Toolbar object at 0x7fd7e0b3ac60 (uninitialized at 0x0)>, <Window object at 0x7fd7e0b34ca8 (gnomenews+window+Window at 0x55d440bb6270)>), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.view.__init__(<NewView object at 0x7fd7e0b43318 (uninitialized at 0x0)>, <Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 'new', 'New'), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.view.__init__(<FeedsView object at 0x7fd7e0b43360 (uninitialized at 0x0)>, <Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 'feeds', 'Feeds', True), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.view.__init__(<StarredView object at 0x7fd7e0b439d8 (uninitialized at 0x0)>, <Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 'starred', 'Starred'), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.view.__init__(<ReadView object at 0x7fd7e0b43af8 (uninitialized at 0x0)>, <Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 'read', 'Read'), returned None
14:28:06 DEBUG tracker.py:70
SELECT
nie:url(?msg) AS url
nie:title(?msg) AS title
nco:fullname(?creator) AS fullname
nie:contentCreated(?msg) AS date
nmo:htmlMessageContent(?msg) AS content
nmo:isRead(?msg) AS is_read
WHERE
{ ?msg a mfo:FeedMessage ; nmo:isRead false; nco:creator ?creator }
ORDER BY DESC (nie:contentCreated(?msg))
LIMIT 10
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9c220>, 'title': 'irc link handling', 'url': 'https://blogs.gnome.org/bastian/2015/07/05/irc-link-handling/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 1996 the World Wide Web Consortium <a href="http://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">made a draft specification</a> for how you can link to an IRC chatroom. The draft does not seem to have developed further, but it is regardless possible to stumble upon these links around the internet now and then. Many other IRC clients support the handling the links too and this week I have enabled Polari to open them.</p>\n<p>The links typically take on the following shape:<br/>\n<code>irc://[server]/[room]</code></p>\n<p>If I wanted to link to the #polari chatroom, the link could look like so:<br/>\n<code>irc://irc.gnome.org/polari</code></p>\n<p>Polari can open these links regardless of whether it is running or not. Furthermore, if you open a link to a server you haven’t used before, then Polari will ask you to specify a username to use for that connection.</p>\n<p><a href="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection.png"><img alt="07-05-15 new-connection-thumb" class="aligncenter size-full wp-image-420" height="364" src="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection-thumb.png" width="640"/></a></p>\n<p>The bug in question is bug <a href="https://bugzilla.gnome.org/show_bug.cgi?id=728593">Bug 728593</a>. I am keeping a solution to solving it inside the <a href="https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/irc-url-parsing">wip/bastianilso/irc-url-parsing</a> branch. However, there’s a few things I am considering before calling the work in this area done:</p>\n<ul>\n<li>It would be a good idea to show a notification if Polari is unable to parse the irc link.</li>\n<li>It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.</li>\n<li>It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in <a href="https://blogs.gnome.org/bastian/2015/06/25/more-menus/">the room menu</a> and/or in the right-click menu for each channel.</li>\n<li>It could be cool if we parsed mentions of rooms (fx #polari) in chats as IRC links you could click or copy/paste.</li>\n</ul>\n<p>I’ll be off for a small trip the next four days but will return in the weekend for more polari bug fixing. (:</p></div>\n </div>', 'fullname': 'Bastian Ilso Hougaard', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9be80>, 'title': 'GtkImageView Round 2', 'url': 'http://baedert-gsoc.blogspot.com/2015/07/gtkimageview-round-2.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2 style="clear: both; text-align: left;">GtkImageView GSoC Status Report No. 2</h2><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><br/><div class="separator" style="clear: both; text-align: center;"><br/></div><div style="text-align: center;"/><div class="separator" style="clear: both; text-align: center;">(Sorry for the bad quality, but youtube seems to screw that up. <a href="http://videobin.org/+9a6/cez.ogg">here</a>\'s a better version)</div><div class="separator" style="clear: both; text-align: center;"><br/></div>So, it\'s already been a long time since my last update. I\'ve reworked the demo in gtk3-demo, put the controls to the left side so we can fit more of them there, e.g. a text field to load a remote image, buttons for the 90° steps, etc. I implemented <span style="font-family: Courier New, Courier, monospace;">GtkScrollable</span> and started working on zoom and rotate gestures but scratched that again since I can\'t properly test it without a multitouch screen -- I will hopefully have a chance to implement and test that at GUADEC.<br/><br/>Since image viewers usually don\'t let the user rotate the image arbitrarily but in 90° steps, <span style="font-family: Courier New, Courier, monospace;">GtkImageView</span> now has a <span style="font-family: Courier New, Courier, monospace;">snap-angle</span> property that, when enabled, rounds the given angle to the lower 90° step. The transitions are just a test, but I like them.<br/><br/>I\'ve pushed the current status to the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch in the gtk+ git repository. It won\'t be merged like that and it\'s not done, but this way I can get some early feedback/review.<br/><br/>Until the next status report, I\'ll have to rework the zoom modes (i.e. remove them), since it\'s not clear what exactly they mean and it\'s very hard to implement the behavior of a normal image viewer like eog with them. They will be replaced by a <span style="font-family: Courier New, Courier, monospace;">fit-allocation</span> property (and maybe some more to specify some additional behavior). The <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">wiki page</a> has some more information right below the list of zoom modes.</div>\n </div>', 'fullname': 'baedert', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9be60>, 'title': 'Working on Data Science User Experience', 'url': 'http://blog.ometer.com/2015/07/06/working-on-data-science-user-experience/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For the last month or so, I’ve been working at <a href="http://continuum.io/">Continuum Analytics</a>, doing product design and development to help out data scientists. I would be overjoyed to hire a few more awesome people to work with, and I’m hoping some of you reading this will be interested enough to learn more about it.</p>\n<p>If you’re used to a “software geek” vs. “nontechnical end user” dichotomy, data scientists might challenge your assumptions. They are a technical audience and they write code, but many wouldn’t consider themselves general software developers. Some of them are research scientists who write code to analyze their data. Others work in industry, finance, nonprofits, and journalism. The “data scientist” title could refer to a domain expert who’s picked up some coding, or to a software developer who’s picked up some statistics. The best data scientists, of course, are good at all sides of the <a href="http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram">hybrid role</a>.</p>\n<p>A cool thing about data scientists is that they are focused on a non-software goal (understanding some aspect of the world through data), rather than tangled up in software as an end in itself.</p>\n<p><a href="https://twitter.com/pwang">Peter Wang</a> and <a href="https://twitter.com/teoliphant">Travis Oliphant</a>, from the open source Python data science world, are the founders of Continuum.</p>\n<p>At Continuum so far I’ve been involved with <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a>, which boils down to a specialized UI toolkit for building interactive data visualizations. (Most of the technical challenges are the same ones found in any UI toolkit or “canvas” library.)</p>\n<p>Here’s the first small feature I’ve been working on, auto-reload of Bokeh apps:<br/>\n\xa0<br/>\n</p>\n<p>(This idea is <a href="http://blog.ometer.com/2014/04/22/its-not-new/">not new</a>, shout out to <a href="https://www.playframework.com/">Play Framework</a>, <a href="https://vimeo.com/36579366">Bret Victor, </a>and <a href="https://github.com/bhauman/lein-figwheel">Bruce Hauman</a> for the inspiration.)</p>\n<p>There’s a lot to do on Bokeh but it’s only part of the picture. For the projects I’m a part of, we’d like to hire more people with a background in building apps, UI toolkits, vector graphics libraries, and the like. There’s room for both design and development skillsets (anyone who cares about user experience, understands that <a href="http://blog.ometer.com/2011/10/24/it-has-to-work/">it has to work</a>, and knows how to make it work). The tech stack is mostly Python plus web tech (JS/HTML/CSS). You might enjoy the projects at Continuum if you think apps that involve numbers and data are neat (think spreadsheets, <a href="http://ipython.org/notebook.html">IPython Notebook</a>, <a href="http://www.reinteract.org/">Reinteract</a>, for example); if you enjoy UI-toolkit kind of problems; or if you like the idea of designing a development framework especially for data scientists.</p>\n<p>There are a couple of official job descriptions on the Continuum site focused on web tech (<a href="https://boards.greenhouse.io/continuum/jobs/70178#.VZp81LxnFW8">web application architect</a> and <a href="https://boards.greenhouse.io/continuum/jobs/8240#.VZp81rxnFW8">web application developer</a>).\xa0 However if you come at this from another background (as I do), such as UI toolkit implementation or spreadsheet implementation, that would be interesting too. If you have a track record of good work as a developer or designer, that’s what counts. Enthusiasm for open source or data science are big pluses. Official applications should go through the website but feel free to <a href="mailto:hpennington@continuum.io">send me email</a> and ask questions.</p></div>\n </div>', 'fullname': 'havoc', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9c320>, 'title': 'Cloud Providers Desktop Integration Support', 'url': 'https://csorianognome.wordpress.com/2015/07/07/cloud-providers/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We all know the current situation with cloud providers such as Dropbox, Owncloud, Drive, etc. is less than ideal.</p>\n<p>The problems are:</p>\n<p>– Some of them use proprietary code for the client, so we can’t control the user experience on the desktop.</p>\n<p>– They provide different experience based on its application, which may result in diferent workflow and poor integration.</p>\n<p>– Integration is very poor. Probably most of this fault is the need for a common API to integrate with the desktop.</p>\n<p>– Full support for it is difficult. It needs gvfs support for syncing etc, which is not yet available, and every provider does it own thing anyway.</p>\n<p>– Uses of specific API depending on the desktop or file manager. i.e. Dropbox uses nautilus-dropbox package for it’s integration with only Nautilus. This is problematic for users of other desktops or file managers, and also the Nautilus extension API is very limited.</p>\n<p>– Need to use tray icons for the menus.</p>\n<p>So what should we do?</p>\n<p>Design team of GNOME worked on it and mockuped\xa0this (the lowest one):\xa0https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png"><img alt="cloud-mockup" class=" wp-image-182 aligncenter" height="424" src="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png?w=588&amp;h=424" width="588"/></a></p>\n<p>This allows cloud providers to add custom menu actions for them, which allow to avoid the use\xa0of tray icons and also shows the status of the cloud provider.</p>\n<p>Now the technical problem, how do we integrate in the desktop without relying on extensions and allowing other file managers/toolkit/desktops use it, so cloud providers companies start using this\xa0integration for\xa0any\xa0desktop?</p>\n<p>Luckely we have a powerful desktop-toolkit-app-agnostic tool. DBus. So I created a DBus API for it and added support for that API in gtk+. This is Nautilus with gtk+ cloud provider support in the sidebar:</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png"><img alt="cloud-providers" class=" wp-image-186 aligncenter" height="524" src="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png?w=374&amp;h=524" width="374"/></a></p>\n<p>Tada! We can see here a cloud provider in the sidebar, using the cloud provider icon, name, status and a custom menu provided by the cloud provider.</p>\n<p>How does it works?</p>\n<p>Cloud providers expose the DBus API and just listen to it’s calls, acting as a server. Also, the cloud providers implement the dbus method “CloudProviderUpdated”, which notifies to DBus that the cloud provider updated it’s status/icon/path or whatever it needs.</p>\n<p>Currently available funcionalities\xa0are:</p>\n<p>– GetIcon: which retrieves the cloud provider brand icon.</p>\n<p>– GetPath: which retrieves the folder where the cloud provider stores its files.</p>\n<p>– GetName: which retrieves the name of the cloud provider</p>\n<p>– GetStatus: which retrieves the status (idle, syncing, error)\xa0of the cloud provider</p>\n<p>And finally, it can expose a full GMenuModel through DBus for its use for any action.</p>\n<p>The good thing about this is that we can extend the DBus API to whatever it’s needed,\xa0so if someone working in a cloud provider\xa0have some suggestion, say it and we will add it.</p>\n<p>What can we do for cloud providers companies that are not interested on it? We can add support for it anyway (as far as it’s API/daemon allows), if we have access to the daemon or some APIs we can create a small shim/bridge\xa0which isolates the daemon/API calls and exposes the DBus methods, that “easy”!</p>\n<p>Now, I guess you would like to see an example of a cloud provider implementation of this desktop integration. Here it is:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38</a></p>\n<p>This example\xa0uses all capabilities, and it updates its status every two seconds.</p>\n<p>And what toolkits/DE’s/apps need to use them? Here is an example:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778</a></p>\n<p>So far it works better than expected. So future work is:</p>\n<p>– Make sure it provides\xa0what all cloud providers need</p>\n<p>– Convince cloud providers companies to use this instead of random extensions, specific DE code, or complex clients. And if not, implement a shim/bridge on our own for them.</p>\n<p>– As you can see, it’s in a wip branch, so it’s needs more work.</p>\n<p>Hope you like the progress\xa0we are doing to\xa0integrate some\xa03rd party services in our linux desktop.</p><br/> <a href="http://feeds.wordpress.com/1.0/gocomments/csorianognome.wordpress.com/180/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csorianognome.wordpress.com/180/"/></a> <img alt="" border="0" height="1" src="https://pixel.wp.com/b.gif?host=csorianognome.wordpress.com&amp;blog=53027067&amp;post=180&amp;subd=csorianognome&amp;ref=&amp;feed=1" width="1"/></div>\n </div>', 'fullname': 'csoriano89', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9bec0>, 'title': 'Summary of work from June 23rd to July 6th', 'url': 'http://oliverluo.blogspot.com/2015/07/summary-of-work-from-june-23rd-to-july.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I\'ve been working though my final exams in the last two weeks. Hope I can get some good scores.<br/><br/>About our project, I\'ve passed the midterm evaluation. Since the time left is not very casual, I will focus on this after the last exam and make EAS better.<br/><br/>By the way, I may participate the GUADEC 2015 if I can get the visa. Hope to have a nice experience with the people there.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9bf20>, 'title': 'No Flash 0.5 - still fighting the legacy', 'url': 'http://www.figuiere.net/hub/blog/?2015/07/09/854-no-flash-05-still-fighting-the-legacy', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week I released <a href="https://addons.mozilla.org/en-US/firefox/addon/no-flash/versions/?page=1#version-0.5.0">No Flash 0.5</a>, my addon for Firefox to fix the legacy of video embedding done with Flash. If you are like me and don\'t have Flash installed, sometime you encounter embedded video that don\'t work. No Flash will fix <strong>some</strong> by replacing the Flash object with a HTML5 video. This is done using the proper video embedding for HTML5.</p>\n\n\n<p>This version brings the following:</p>\n<ul>\n<li>Work on more recent Firefox Nightlies with e10s - it was utterly broken</li>\n<li>Add support for embedded <em>Dailymotion</em>.</li>\n</ul>\n\n<p>Also still, supports <em>vimeo</em> and <em>YouTube</em> - the later being extremely common.</p>\n\n\n<p><strong>Update:</strong> please file issues in the <a href="https://github.com/hfiguiere/no-flash/issues">issue tracker</a>.</p></div>\n </div>', 'fullname': 'hub', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9c160>, 'title': 'In-person usability testing', 'url': 'http://opensource-usability.blogspot.com/2015/07/in-person-usability-testing.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg"/></a></div>I wanted to share this blog post from a colleague at the University of Minnesota-Twin Cities, discussing the recent usability testing they hosted for <a href="https://www.drupal.org/">Drupal</a>, the open source content management system. A few quotes:<br/><br/><blockquote class="tr_bq"><a href="https://it.umn.edu/community/inside-itumn/u-hosted-usability-evaluation-advances"><b>U-hosted usability evaluation advances Drupal 8</b></a><br/><br/>On the other side of the two-way mirror, the Drupal team of observers were able to see how volunteers’ eyes moved around the screen, where they clicked, and what they typed. Observers also were able to hear test subjects describe what they were doing as they were doing it, and what they liked and didn’t like about the pre-launch of Drupal 8<br/><br/>Best of all, observers were able to discuss what they were seeing real-time. They took notes and, after each session, identified and rated the importance of problems encountered.</blockquote><br/>In-person usability testing can be very powerful for developers, as it provides them an unfiltered view to how users are actually using their programs. Developers can witness where users are struggling with the interface, what is working well versus what areas need improvement.<br/><div class="post-note">image: University of Minnesota</div></div>\n </div>', 'fullname': 'Jim Hall', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9b640>, 'title': 'Code Version Control Problem', 'url': 'http://oliverluo.blogspot.com/2015/07/code-version-control-problem.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Code version control using\xa0Git or SVN seems like too trivial to some small project, but today\'s experience taught me a lesson. <br/><br/>We, two classmates and me, are developing a small and simple distributed in-memory key-value storage system (like\xa0a system called piccolo developed by Professor Jinyang Li\'s team\xa0in New York University) these days. One of them had constructed the basic framework several days before, and we have been adding new functions based on his work. We did our version control work by simply modifying the old code, since we thought it\'s just a demo system and should not be hard to maintain. But the truth is that coding is easy, but merging our work really drives us crazy. We have to modify our new code manually to make it adapted to others changes. I have to admit that this kind of version control deprives all of my passion for coding something.<br/><br/>Today I learned that even if you are developing a really small project, wise version control is indispensable. A beard well lathered is half shaved, though.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9c120>, 'title': 'GTG Preferences -- REMADE!', 'url': 'http://www.jakubbrindza.com/2015/07/gtg-preferences-remade.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It seemed to take forever. Endless PR reviews, improvements, code refactoring and hours spent working on editor, removing deprecated icons or search.<br/><br/>However, at the beginning of this week I finally managed to get the pull requests to a state when they could be merged. As a consequence, Getting Things GNOME! now features (well, from 99% I dare to say) most up-to-date widgets and properties. Moreover, master version is now boosted with re-designed editor window as you can see from the photo here:<br/><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s400/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: left;">As for another challenge I decided to face in my summer experience, I chose to refurbish preferences.</div><div class="separator" style="clear: both; text-align: left;">All in all, the beginnings were not that tough. Currently, my version features re-newed implementation of the general settings.</div><div class="separator" style="clear: both; text-align: left;">In the (very soon) future, I\'ll moreover be implementing also the plugins and synchronisation services in the same preferences window. This way, users will be experiencing a much simpler to use and friendlier environment when it comes to customisation of the app.</div><div class="separator" style="clear: both; text-align: left;"><br/></div><div class="separator" style="clear: both; text-align: left;">Without some exhausting descriptions, take a look at the current additions to the Getting Things GNOME!</div><div class="separator" style="clear: both; text-align: left;"><br/></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Preferences window now features side menu for three major categories and main window to view particular settings</td></tr></tbody></table><br/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Plugins and Synchronisation services. Coming soon!</td></tr></tbody></table><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: left;"><br/></div><br/>In Plugins window, the plan is to re-make entirely the current way of viewing individual plugins. I will be trying to get rid of the treeview and place each plugin in a separate GtkBox. I\'m particularly looking forward to this. The reason is that I have not yet tried to create one general widget that would be applied to all the elements, but rather created all the individual elements. This was both inefficient and exhausting, so I\'d love to learn how to apply the same pattern to several places.<br/><br/>As for the synchronisation services, I\'m sure you\'ll notice some refurbishments here, too, in a short period of time.<br/><br/>The overall aim is to produce a simple, sleek and easy-to-use interface that will be 100% functional and bring Getting Things GNOME again a bit closer to GNOME 3 standards.<br/><br/>I love the changes and so I hope you do as well.<br/><br/>On the other hand, for the past few hours I\'ve been trying to make parents viewing feature in Task Editor functional, since this was one of the features which lacked in <a href="http://www.jakubbrindza.com/2015/06/another-huge-leap-for-gtg.html" target="_blank">my last PR</a>, even though the UI is present. Not many break-throughs in there so far though.<br/>Getting Things GNOME features a function get_parents() whose name I found rather misleading since I found out that it does not give you a list of all parents a task may have (assuming it\'s a task of level 2+), but it gives you only the most direct, one-level-up parent. This makes the entire problem a bit more difficult since I cannot easily, let\'s say, make an array that would hold all the names (or task id\'s) of a task\'s parents which would then be placed into a popover.<br/>This may be tough, but it\'s a core feature which needs to be implemented, so I want to work on it.<br/><br/>Stay tuned!</div>\n </div>', 'fullname': 'Jakub Brindza', 'is_read': False}
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.tracker.parse_sparql(<__main__.TrackerDBCursor object at 0x7fd7e0b43f30 (TrackerDBCursor at 0x55d440dba6c0)>), returned {'date': <GDateTime at 0x55d440a9b6c0>, 'title': 'Diary of a new board member', 'url': 'https://blogs.gnome.org/aday/2015/07/13/diary-of-a-new-board-member/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So <a href="https://mail.gnome.org/archives/foundation-announce/2015-June/msg00003.html">this</a> happened. It’s the first time I’ve served on the Foundation’s Board of Directors, and I thought it would be good to write about the experience.</p>\n<p>The GNOME Foundation Board can often be a bit opaque. Generally it works in the background, and while you can get a sense of some of its activities through <a href="https://wiki.gnome.org/FoundationBoard/Minutes">the minutes</a>, it is easy to forget that the board is out there doing its thing. </p>\n<p>It has been a bit of a revelation to see just how active the board is. It’s a bit like I’ve discovered a new, secret world inside the GNOME project. And there’s a lot happening in this world – it is always busy.</p>\n<p>There’s an IRC channel and several private mailing lists, which are very active. And there are tasks being taken care of all the time – I already have a list of three or four things that I’m sorting out, for example.</p>\n<p>I was impressed by the first board meeting I participated in. There was a clear agenda that was followed, minutes were recorded as the meeting went on, and the meeting ran to time. Many of the agenda items weren’t particularly glamorous, but they were things that need to be done, and there was a good level of scrutiny around each one.</p>\n<p>There have been a few other things that have surprised me about the board. I wasn’t fully aware of how institutionalised it is. We are governed by our <a href="https://www.gnome.org/wp-content/uploads/2012/02/bylaws.pdf">bylaws</a>, which set out how the board has to operate, as well as some of its obligations. I read them recently, and was surprised by a couple of things that are in there. If you’re a Foundation member, you might be interested to take a look.</p>\n<p>Another thing is just how important Rosanna is to the board. For those who don’t know, Rosanna is the Foundation’s Director of Operations. Not only does she take care of a lot of the Foundation’s adminstration, but she is a valuable source of knowledge and expertise, having worked for the Foundation for numerous years. She’s another one of those aspects of the Foundation that is both important and, often, hidden from view.</p>\n<p>I’m still busy learning the ropes, and there’s a lot I have to learn. So far it is satisfying work though, and good to see another side of the GNOME project.</p></div>\n </div>', 'fullname': 'Allan', 'is_read': False}
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.tracker.get_post_sorted_by_date(<Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 10, True), returned [{'date': <GDateTime at 0x55d440a9c220>, 'title': 'irc link handling', 'url': 'https://blogs.gnome.org/bastian/2015/07/05/irc-link-handling/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 1996 the World Wide Web Consortium <a href="http://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">made a draft specification</a> for how you can link to an IRC chatroom. The draft does not seem to have developed further, but it is regardless possible to stumble upon these links around the internet now and then. Many other IRC clients support the handling the links too and this week I have enabled Polari to open them.</p>\n<p>The links typically take on the following shape:<br/>\n<code>irc://[server]/[room]</code></p>\n<p>If I wanted to link to the #polari chatroom, the link could look like so:<br/>\n<code>irc://irc.gnome.org/polari</code></p>\n<p>Polari can open these links regardless of whether it is running or not. Furthermore, if you open a link to a server you haven’t used before, then Polari will ask you to specify a username to use for that connection.</p>\n<p><a href="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection.png"><img alt="07-05-15 new-connection-thumb" class="aligncenter size-full wp-image-420" height="364" src="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection-thumb.png" width="640"/></a></p>\n<p>The bug in question is bug <a href="https://bugzilla.gnome.org/show_bug.cgi?id=728593">Bug 728593</a>. I am keeping a solution to solving it inside the <a href="https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/irc-url-parsing">wip/bastianilso/irc-url-parsing</a> branch. However, there’s a few things I am considering before calling the work in this area done:</p>\n<ul>\n<li>It would be a good idea to show a notification if Polari is unable to parse the irc link.</li>\n<li>It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.</li>\n<li>It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in <a href="https://blogs.gnome.org/bastian/2015/06/25/more-menus/">the room menu</a> and/or in the right-click menu for each channel.</li>\n<li>It could be cool if we parsed mentions of rooms (fx #polari) in chats as IRC links you could click or copy/paste.</li>\n</ul>\n<p>I’ll be off for a small trip the next four days but will return in the weekend for more polari bug fixing. (:</p></div>\n </div>', 'fullname': 'Bastian Ilso Hougaard', 'is_read': False}, {'date': <GDateTime at 0x55d440a9be80>, 'title': 'GtkImageView Round 2', 'url': 'http://baedert-gsoc.blogspot.com/2015/07/gtkimageview-round-2.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2 style="clear: both; text-align: left;">GtkImageView GSoC Status Report No. 2</h2><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><br/><div class="separator" style="clear: both; text-align: center;"><br/></div><div style="text-align: center;"/><div class="separator" style="clear: both; text-align: center;">(Sorry for the bad quality, but youtube seems to screw that up. <a href="http://videobin.org/+9a6/cez.ogg">here</a>\'s a better version)</div><div class="separator" style="clear: both; text-align: center;"><br/></div>So, it\'s already been a long time since my last update. I\'ve reworked the demo in gtk3-demo, put the controls to the left side so we can fit more of them there, e.g. a text field to load a remote image, buttons for the 90° steps, etc. I implemented <span style="font-family: Courier New, Courier, monospace;">GtkScrollable</span> and started working on zoom and rotate gestures but scratched that again since I can\'t properly test it without a multitouch screen -- I will hopefully have a chance to implement and test that at GUADEC.<br/><br/>Since image viewers usually don\'t let the user rotate the image arbitrarily but in 90° steps, <span style="font-family: Courier New, Courier, monospace;">GtkImageView</span> now has a <span style="font-family: Courier New, Courier, monospace;">snap-angle</span> property that, when enabled, rounds the given angle to the lower 90° step. The transitions are just a test, but I like them.<br/><br/>I\'ve pushed the current status to the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch in the gtk+ git repository. It won\'t be merged like that and it\'s not done, but this way I can get some early feedback/review.<br/><br/>Until the next status report, I\'ll have to rework the zoom modes (i.e. remove them), since it\'s not clear what exactly they mean and it\'s very hard to implement the behavior of a normal image viewer like eog with them. They will be replaced by a <span style="font-family: Courier New, Courier, monospace;">fit-allocation</span> property (and maybe some more to specify some additional behavior). The <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">wiki page</a> has some more information right below the list of zoom modes.</div>\n </div>', 'fullname': 'baedert', 'is_read': False}, {'date': <GDateTime at 0x55d440a9be60>, 'title': 'Working on Data Science User Experience', 'url': 'http://blog.ometer.com/2015/07/06/working-on-data-science-user-experience/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For the last month or so, I’ve been working at <a href="http://continuum.io/">Continuum Analytics</a>, doing product design and development to help out data scientists. I would be overjoyed to hire a few more awesome people to work with, and I’m hoping some of you reading this will be interested enough to learn more about it.</p>\n<p>If you’re used to a “software geek” vs. “nontechnical end user” dichotomy, data scientists might challenge your assumptions. They are a technical audience and they write code, but many wouldn’t consider themselves general software developers. Some of them are research scientists who write code to analyze their data. Others work in industry, finance, nonprofits, and journalism. The “data scientist” title could refer to a domain expert who’s picked up some coding, or to a software developer who’s picked up some statistics. The best data scientists, of course, are good at all sides of the <a href="http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram">hybrid role</a>.</p>\n<p>A cool thing about data scientists is that they are focused on a non-software goal (understanding some aspect of the world through data), rather than tangled up in software as an end in itself.</p>\n<p><a href="https://twitter.com/pwang">Peter Wang</a> and <a href="https://twitter.com/teoliphant">Travis Oliphant</a>, from the open source Python data science world, are the founders of Continuum.</p>\n<p>At Continuum so far I’ve been involved with <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a>, which boils down to a specialized UI toolkit for building interactive data visualizations. (Most of the technical challenges are the same ones found in any UI toolkit or “canvas” library.)</p>\n<p>Here’s the first small feature I’ve been working on, auto-reload of Bokeh apps:<br/>\n\xa0<br/>\n</p>\n<p>(This idea is <a href="http://blog.ometer.com/2014/04/22/its-not-new/">not new</a>, shout out to <a href="https://www.playframework.com/">Play Framework</a>, <a href="https://vimeo.com/36579366">Bret Victor, </a>and <a href="https://github.com/bhauman/lein-figwheel">Bruce Hauman</a> for the inspiration.)</p>\n<p>There’s a lot to do on Bokeh but it’s only part of the picture. For the projects I’m a part of, we’d like to hire more people with a background in building apps, UI toolkits, vector graphics libraries, and the like. There’s room for both design and development skillsets (anyone who cares about user experience, understands that <a href="http://blog.ometer.com/2011/10/24/it-has-to-work/">it has to work</a>, and knows how to make it work). The tech stack is mostly Python plus web tech (JS/HTML/CSS). You might enjoy the projects at Continuum if you think apps that involve numbers and data are neat (think spreadsheets, <a href="http://ipython.org/notebook.html">IPython Notebook</a>, <a href="http://www.reinteract.org/">Reinteract</a>, for example); if you enjoy UI-toolkit kind of problems; or if you like the idea of designing a development framework especially for data scientists.</p>\n<p>There are a couple of official job descriptions on the Continuum site focused on web tech (<a href="https://boards.greenhouse.io/continuum/jobs/70178#.VZp81LxnFW8">web application architect</a> and <a href="https://boards.greenhouse.io/continuum/jobs/8240#.VZp81rxnFW8">web application developer</a>).\xa0 However if you come at this from another background (as I do), such as UI toolkit implementation or spreadsheet implementation, that would be interesting too. If you have a track record of good work as a developer or designer, that’s what counts. Enthusiasm for open source or data science are big pluses. Official applications should go through the website but feel free to <a href="mailto:hpennington@continuum.io">send me email</a> and ask questions.</p></div>\n </div>', 'fullname': 'havoc', 'is_read': False}, {'date': <GDateTime at 0x55d440a9c320>, 'title': 'Cloud Providers Desktop Integration Support', 'url': 'https://csorianognome.wordpress.com/2015/07/07/cloud-providers/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We all know the current situation with cloud providers such as Dropbox, Owncloud, Drive, etc. is less than ideal.</p>\n<p>The problems are:</p>\n<p>– Some of them use proprietary code for the client, so we can’t control the user experience on the desktop.</p>\n<p>– They provide different experience based on its application, which may result in diferent workflow and poor integration.</p>\n<p>– Integration is very poor. Probably most of this fault is the need for a common API to integrate with the desktop.</p>\n<p>– Full support for it is difficult. It needs gvfs support for syncing etc, which is not yet available, and every provider does it own thing anyway.</p>\n<p>– Uses of specific API depending on the desktop or file manager. i.e. Dropbox uses nautilus-dropbox package for it’s integration with only Nautilus. This is problematic for users of other desktops or file managers, and also the Nautilus extension API is very limited.</p>\n<p>– Need to use tray icons for the menus.</p>\n<p>So what should we do?</p>\n<p>Design team of GNOME worked on it and mockuped\xa0this (the lowest one):\xa0https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png"><img alt="cloud-mockup" class=" wp-image-182 aligncenter" height="424" src="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png?w=588&amp;h=424" width="588"/></a></p>\n<p>This allows cloud providers to add custom menu actions for them, which allow to avoid the use\xa0of tray icons and also shows the status of the cloud provider.</p>\n<p>Now the technical problem, how do we integrate in the desktop without relying on extensions and allowing other file managers/toolkit/desktops use it, so cloud providers companies start using this\xa0integration for\xa0any\xa0desktop?</p>\n<p>Luckely we have a powerful desktop-toolkit-app-agnostic tool. DBus. So I created a DBus API for it and added support for that API in gtk+. This is Nautilus with gtk+ cloud provider support in the sidebar:</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png"><img alt="cloud-providers" class=" wp-image-186 aligncenter" height="524" src="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png?w=374&amp;h=524" width="374"/></a></p>\n<p>Tada! We can see here a cloud provider in the sidebar, using the cloud provider icon, name, status and a custom menu provided by the cloud provider.</p>\n<p>How does it works?</p>\n<p>Cloud providers expose the DBus API and just listen to it’s calls, acting as a server. Also, the cloud providers implement the dbus method “CloudProviderUpdated”, which notifies to DBus that the cloud provider updated it’s status/icon/path or whatever it needs.</p>\n<p>Currently available funcionalities\xa0are:</p>\n<p>– GetIcon: which retrieves the cloud provider brand icon.</p>\n<p>– GetPath: which retrieves the folder where the cloud provider stores its files.</p>\n<p>– GetName: which retrieves the name of the cloud provider</p>\n<p>– GetStatus: which retrieves the status (idle, syncing, error)\xa0of the cloud provider</p>\n<p>And finally, it can expose a full GMenuModel through DBus for its use for any action.</p>\n<p>The good thing about this is that we can extend the DBus API to whatever it’s needed,\xa0so if someone working in a cloud provider\xa0have some suggestion, say it and we will add it.</p>\n<p>What can we do for cloud providers companies that are not interested on it? We can add support for it anyway (as far as it’s API/daemon allows), if we have access to the daemon or some APIs we can create a small shim/bridge\xa0which isolates the daemon/API calls and exposes the DBus methods, that “easy”!</p>\n<p>Now, I guess you would like to see an example of a cloud provider implementation of this desktop integration. Here it is:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38</a></p>\n<p>This example\xa0uses all capabilities, and it updates its status every two seconds.</p>\n<p>And what toolkits/DE’s/apps need to use them? Here is an example:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778</a></p>\n<p>So far it works better than expected. So future work is:</p>\n<p>– Make sure it provides\xa0what all cloud providers need</p>\n<p>– Convince cloud providers companies to use this instead of random extensions, specific DE code, or complex clients. And if not, implement a shim/bridge on our own for them.</p>\n<p>– As you can see, it’s in a wip branch, so it’s needs more work.</p>\n<p>Hope you like the progress\xa0we are doing to\xa0integrate some\xa03rd party services in our linux desktop.</p><br/> <a href="http://feeds.wordpress.com/1.0/gocomments/csorianognome.wordpress.com/180/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csorianognome.wordpress.com/180/"/></a> <img alt="" border="0" height="1" src="https://pixel.wp.com/b.gif?host=csorianognome.wordpress.com&amp;blog=53027067&amp;post=180&amp;subd=csorianognome&amp;ref=&amp;feed=1" width="1"/></div>\n </div>', 'fullname': 'csoriano89', 'is_read': False}, {'date': <GDateTime at 0x55d440a9bec0>, 'title': 'Summary of work from June 23rd to July 6th', 'url': 'http://oliverluo.blogspot.com/2015/07/summary-of-work-from-june-23rd-to-july.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I\'ve been working though my final exams in the last two weeks. Hope I can get some good scores.<br/><br/>About our project, I\'ve passed the midterm evaluation. Since the time left is not very casual, I will focus on this after the last exam and make EAS better.<br/><br/>By the way, I may participate the GUADEC 2015 if I can get the visa. Hope to have a nice experience with the people there.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}, {'date': <GDateTime at 0x55d440a9bf20>, 'title': 'No Flash 0.5 - still fighting the legacy', 'url': 'http://www.figuiere.net/hub/blog/?2015/07/09/854-no-flash-05-still-fighting-the-legacy', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week I released <a href="https://addons.mozilla.org/en-US/firefox/addon/no-flash/versions/?page=1#version-0.5.0">No Flash 0.5</a>, my addon for Firefox to fix the legacy of video embedding done with Flash. If you are like me and don\'t have Flash installed, sometime you encounter embedded video that don\'t work. No Flash will fix <strong>some</strong> by replacing the Flash object with a HTML5 video. This is done using the proper video embedding for HTML5.</p>\n\n\n<p>This version brings the following:</p>\n<ul>\n<li>Work on more recent Firefox Nightlies with e10s - it was utterly broken</li>\n<li>Add support for embedded <em>Dailymotion</em>.</li>\n</ul>\n\n<p>Also still, supports <em>vimeo</em> and <em>YouTube</em> - the later being extremely common.</p>\n\n\n<p><strong>Update:</strong> please file issues in the <a href="https://github.com/hfiguiere/no-flash/issues">issue tracker</a>.</p></div>\n </div>', 'fullname': 'hub', 'is_read': False}, {'date': <GDateTime at 0x55d440a9c160>, 'title': 'In-person usability testing', 'url': 'http://opensource-usability.blogspot.com/2015/07/in-person-usability-testing.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg"/></a></div>I wanted to share this blog post from a colleague at the University of Minnesota-Twin Cities, discussing the recent usability testing they hosted for <a href="https://www.drupal.org/">Drupal</a>, the open source content management system. A few quotes:<br/><br/><blockquote class="tr_bq"><a href="https://it.umn.edu/community/inside-itumn/u-hosted-usability-evaluation-advances"><b>U-hosted usability evaluation advances Drupal 8</b></a><br/><br/>On the other side of the two-way mirror, the Drupal team of observers were able to see how volunteers’ eyes moved around the screen, where they clicked, and what they typed. Observers also were able to hear test subjects describe what they were doing as they were doing it, and what they liked and didn’t like about the pre-launch of Drupal 8<br/><br/>Best of all, observers were able to discuss what they were seeing real-time. They took notes and, after each session, identified and rated the importance of problems encountered.</blockquote><br/>In-person usability testing can be very powerful for developers, as it provides them an unfiltered view to how users are actually using their programs. Developers can witness where users are struggling with the interface, what is working well versus what areas need improvement.<br/><div class="post-note">image: University of Minnesota</div></div>\n </div>', 'fullname': 'Jim Hall', 'is_read': False}, {'date': <GDateTime at 0x55d440a9b640>, 'title': 'Code Version Control Problem', 'url': 'http://oliverluo.blogspot.com/2015/07/code-version-control-problem.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Code version control using\xa0Git or SVN seems like too trivial to some small project, but today\'s experience taught me a lesson. <br/><br/>We, two classmates and me, are developing a small and simple distributed in-memory key-value storage system (like\xa0a system called piccolo developed by Professor Jinyang Li\'s team\xa0in New York University) these days. One of them had constructed the basic framework several days before, and we have been adding new functions based on his work. We did our version control work by simply modifying the old code, since we thought it\'s just a demo system and should not be hard to maintain. But the truth is that coding is easy, but merging our work really drives us crazy. We have to modify our new code manually to make it adapted to others changes. I have to admit that this kind of version control deprives all of my passion for coding something.<br/><br/>Today I learned that even if you are developing a really small project, wise version control is indispensable. A beard well lathered is half shaved, though.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}, {'date': <GDateTime at 0x55d440a9c120>, 'title': 'GTG Preferences -- REMADE!', 'url': 'http://www.jakubbrindza.com/2015/07/gtg-preferences-remade.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It seemed to take forever. Endless PR reviews, improvements, code refactoring and hours spent working on editor, removing deprecated icons or search.<br/><br/>However, at the beginning of this week I finally managed to get the pull requests to a state when they could be merged. As a consequence, Getting Things GNOME! now features (well, from 99% I dare to say) most up-to-date widgets and properties. Moreover, master version is now boosted with re-designed editor window as you can see from the photo here:<br/><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s400/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: left;">As for another challenge I decided to face in my summer experience, I chose to refurbish preferences.</div><div class="separator" style="clear: both; text-align: left;">All in all, the beginnings were not that tough. Currently, my version features re-newed implementation of the general settings.</div><div class="separator" style="clear: both; text-align: left;">In the (very soon) future, I\'ll moreover be implementing also the plugins and synchronisation services in the same preferences window. This way, users will be experiencing a much simpler to use and friendlier environment when it comes to customisation of the app.</div><div class="separator" style="clear: both; text-align: left;"><br/></div><div class="separator" style="clear: both; text-align: left;">Without some exhausting descriptions, take a look at the current additions to the Getting Things GNOME!</div><div class="separator" style="clear: both; text-align: left;"><br/></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Preferences window now features side menu for three major categories and main window to view particular settings</td></tr></tbody></table><br/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Plugins and Synchronisation services. Coming soon!</td></tr></tbody></table><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: left;"><br/></div><br/>In Plugins window, the plan is to re-make entirely the current way of viewing individual plugins. I will be trying to get rid of the treeview and place each plugin in a separate GtkBox. I\'m particularly looking forward to this. The reason is that I have not yet tried to create one general widget that would be applied to all the elements, but rather created all the individual elements. This was both inefficient and exhausting, so I\'d love to learn how to apply the same pattern to several places.<br/><br/>As for the synchronisation services, I\'m sure you\'ll notice some refurbishments here, too, in a short period of time.<br/><br/>The overall aim is to produce a simple, sleek and easy-to-use interface that will be 100% functional and bring Getting Things GNOME again a bit closer to GNOME 3 standards.<br/><br/>I love the changes and so I hope you do as well.<br/><br/>On the other hand, for the past few hours I\'ve been trying to make parents viewing feature in Task Editor functional, since this was one of the features which lacked in <a href="http://www.jakubbrindza.com/2015/06/another-huge-leap-for-gtg.html" target="_blank">my last PR</a>, even though the UI is present. Not many break-throughs in there so far though.<br/>Getting Things GNOME features a function get_parents() whose name I found rather misleading since I found out that it does not give you a list of all parents a task may have (assuming it\'s a task of level 2+), but it gives you only the most direct, one-level-up parent. This makes the entire problem a bit more difficult since I cannot easily, let\'s say, make an array that would hold all the names (or task id\'s) of a task\'s parents which would then be placed into a popover.<br/>This may be tough, but it\'s a core feature which needs to be implemented, so I want to work on it.<br/><br/>Stay tuned!</div>\n </div>', 'fullname': 'Jakub Brindza', 'is_read': False}, {'date': <GDateTime at 0x55d440a9b6c0>, 'title': 'Diary of a new board member', 'url': 'https://blogs.gnome.org/aday/2015/07/13/diary-of-a-new-board-member/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So <a href="https://mail.gnome.org/archives/foundation-announce/2015-June/msg00003.html">this</a> happened. It’s the first time I’ve served on the Foundation’s Board of Directors, and I thought it would be good to write about the experience.</p>\n<p>The GNOME Foundation Board can often be a bit opaque. Generally it works in the background, and while you can get a sense of some of its activities through <a href="https://wiki.gnome.org/FoundationBoard/Minutes">the minutes</a>, it is easy to forget that the board is out there doing its thing. </p>\n<p>It has been a bit of a revelation to see just how active the board is. It’s a bit like I’ve discovered a new, secret world inside the GNOME project. And there’s a lot happening in this world – it is always busy.</p>\n<p>There’s an IRC channel and several private mailing lists, which are very active. And there are tasks being taken care of all the time – I already have a list of three or four things that I’m sorting out, for example.</p>\n<p>I was impressed by the first board meeting I participated in. There was a clear agenda that was followed, minutes were recorded as the meeting went on, and the meeting ran to time. Many of the agenda items weren’t particularly glamorous, but they were things that need to be done, and there was a good level of scrutiny around each one.</p>\n<p>There have been a few other things that have surprised me about the board. I wasn’t fully aware of how institutionalised it is. We are governed by our <a href="https://www.gnome.org/wp-content/uploads/2012/02/bylaws.pdf">bylaws</a>, which set out how the board has to operate, as well as some of its obligations. I read them recently, and was surprised by a couple of things that are in there. If you’re a Foundation member, you might be interested to take a look.</p>\n<p>Another thing is just how important Rosanna is to the board. For those who don’t know, Rosanna is the Foundation’s Director of Operations. Not only does she take care of a lot of the Foundation’s adminstration, but she is a valuable source of knowledge and expertise, having worked for the Foundation for numerous years. She’s another one of those aspects of the Foundation that is both important and, often, hidden from view.</p>\n<p>I’m still busy learning the ropes, and there’s a lot I have to learn. So far it is satisfying work though, and good to see another side of the GNOME project.</p></div>\n </div>', 'fullname': 'Allan', 'is_read': False}]
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b43f30 (gnomenews+post+Post at 0x55d440a9b660)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b43f30 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9c220>, 'title': 'irc link handling', 'url': 'https://blogs.gnome.org/bastian/2015/07/05/irc-link-handling/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 1996 the World Wide Web Consortium <a href="http://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">made a draft specification</a> for how you can link to an IRC chatroom. The draft does not seem to have developed further, but it is regardless possible to stumble upon these links around the internet now and then. Many other IRC clients support the handling the links too and this week I have enabled Polari to open them.</p>\n<p>The links typically take on the following shape:<br/>\n<code>irc://[server]/[room]</code></p>\n<p>If I wanted to link to the #polari chatroom, the link could look like so:<br/>\n<code>irc://irc.gnome.org/polari</code></p>\n<p>Polari can open these links regardless of whether it is running or not. Furthermore, if you open a link to a server you haven’t used before, then Polari will ask you to specify a username to use for that connection.</p>\n<p><a href="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection.png"><img alt="07-05-15 new-connection-thumb" class="aligncenter size-full wp-image-420" height="364" src="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection-thumb.png" width="640"/></a></p>\n<p>The bug in question is bug <a href="https://bugzilla.gnome.org/show_bug.cgi?id=728593">Bug 728593</a>. I am keeping a solution to solving it inside the <a href="https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/irc-url-parsing">wip/bastianilso/irc-url-parsing</a> branch. However, there’s a few things I am considering before calling the work in this area done:</p>\n<ul>\n<li>It would be a good idea to show a notification if Polari is unable to parse the irc link.</li>\n<li>It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.</li>\n<li>It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in <a href="https://blogs.gnome.org/bastian/2015/06/25/more-menus/">the room menu</a> and/or in the right-click menu for each channel.</li>\n<li>It could be cool if we parsed mentions of rooms (fx #polari) in chats as IRC links you could click or copy/paste.</li>\n</ul>\n<p>I’ll be off for a small trip the next four days but will return in the weekend for more polari bug fixing. (:</p></div>\n </div>', 'fullname': 'Bastian Ilso Hougaard', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9c220>, 'title': 'irc link handling', 'url': 'https://blogs.gnome.org/bastian/2015/07/05/irc-link-handling/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Back in 1996 the World Wide Web Consortium <a href="http://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">made a draft specification</a> for how you can link to an IRC chatroom. The draft does not seem to have developed further, but it is regardless possible to stumble upon these links around the internet now and then. Many other IRC clients support the handling the links too and this week I have enabled Polari to open them.</p>\n<p>The links typically take on the following shape:<br/>\n<code>irc://[server]/[room]</code></p>\n<p>If I wanted to link to the #polari chatroom, the link could look like so:<br/>\n<code>irc://irc.gnome.org/polari</code></p>\n<p>Polari can open these links regardless of whether it is running or not. Furthermore, if you open a link to a server you haven’t used before, then Polari will ask you to specify a username to use for that connection.</p>\n<p><a href="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection.png"><img alt="07-05-15 new-connection-thumb" class="aligncenter size-full wp-image-420" height="364" src="https://blogs.gnome.org/bastian/files/2015/07/07-05-15-new-connection-thumb.png" width="640"/></a></p>\n<p>The bug in question is bug <a href="https://bugzilla.gnome.org/show_bug.cgi?id=728593">Bug 728593</a>. I am keeping a solution to solving it inside the <a href="https://git.gnome.org/browse/polari/log/?h=wip/bastianilso/irc-url-parsing">wip/bastianilso/irc-url-parsing</a> branch. However, there’s a few things I am considering before calling the work in this area done:</p>\n<ul>\n<li>It would be a good idea to show a notification if Polari is unable to parse the irc link.</li>\n<li>It might be worth to also support corner cases of the irc link specification such URLs targeting nicknames, URLs containing a passphrase and so on.</li>\n<li>It could be cool to have a “Copy link adress” menu item per room so you can copy/paste a room’s irc link to other people. The menu item could be placed in <a href="https://blogs.gnome.org/bastian/2015/06/25/more-menus/">the room menu</a> and/or in the right-click menu for each channel.</li>\n<li>It could be cool if we parsed mentions of rooms (fx #polari) in chats as IRC links you could click or copy/paste.</li>\n</ul>\n<p>I’ll be off for a small trip the next four days but will return in the weekend for more polari bug fixing. (:</p></div>\n </div>', 'fullname': 'Bastian Ilso Hougaard', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b49dc8 (gnomenews+post+Post at 0x55d440a9e900)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b49dc8 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9be80>, 'title': 'GtkImageView Round 2', 'url': 'http://baedert-gsoc.blogspot.com/2015/07/gtkimageview-round-2.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2 style="clear: both; text-align: left;">GtkImageView GSoC Status Report No. 2</h2><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><br/><div class="separator" style="clear: both; text-align: center;"><br/></div><div style="text-align: center;"/><div class="separator" style="clear: both; text-align: center;">(Sorry for the bad quality, but youtube seems to screw that up. <a href="http://videobin.org/+9a6/cez.ogg">here</a>\'s a better version)</div><div class="separator" style="clear: both; text-align: center;"><br/></div>So, it\'s already been a long time since my last update. I\'ve reworked the demo in gtk3-demo, put the controls to the left side so we can fit more of them there, e.g. a text field to load a remote image, buttons for the 90° steps, etc. I implemented <span style="font-family: Courier New, Courier, monospace;">GtkScrollable</span> and started working on zoom and rotate gestures but scratched that again since I can\'t properly test it without a multitouch screen -- I will hopefully have a chance to implement and test that at GUADEC.<br/><br/>Since image viewers usually don\'t let the user rotate the image arbitrarily but in 90° steps, <span style="font-family: Courier New, Courier, monospace;">GtkImageView</span> now has a <span style="font-family: Courier New, Courier, monospace;">snap-angle</span> property that, when enabled, rounds the given angle to the lower 90° step. The transitions are just a test, but I like them.<br/><br/>I\'ve pushed the current status to the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch in the gtk+ git repository. It won\'t be merged like that and it\'s not done, but this way I can get some early feedback/review.<br/><br/>Until the next status report, I\'ll have to rework the zoom modes (i.e. remove them), since it\'s not clear what exactly they mean and it\'s very hard to implement the behavior of a normal image viewer like eog with them. They will be replaced by a <span style="font-family: Courier New, Courier, monospace;">fit-allocation</span> property (and maybe some more to specify some additional behavior). The <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">wiki page</a> has some more information right below the list of zoom modes.</div>\n </div>', 'fullname': 'baedert', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9be80>, 'title': 'GtkImageView Round 2', 'url': 'http://baedert-gsoc.blogspot.com/2015/07/gtkimageview-round-2.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2 style="clear: both; text-align: left;">GtkImageView GSoC Status Report No. 2</h2><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: center;"><br/></div><br/><div class="separator" style="clear: both; text-align: center;"><br/></div><div style="text-align: center;"/><div class="separator" style="clear: both; text-align: center;">(Sorry for the bad quality, but youtube seems to screw that up. <a href="http://videobin.org/+9a6/cez.ogg">here</a>\'s a better version)</div><div class="separator" style="clear: both; text-align: center;"><br/></div>So, it\'s already been a long time since my last update. I\'ve reworked the demo in gtk3-demo, put the controls to the left side so we can fit more of them there, e.g. a text field to load a remote image, buttons for the 90° steps, etc. I implemented <span style="font-family: Courier New, Courier, monospace;">GtkScrollable</span> and started working on zoom and rotate gestures but scratched that again since I can\'t properly test it without a multitouch screen -- I will hopefully have a chance to implement and test that at GUADEC.<br/><br/>Since image viewers usually don\'t let the user rotate the image arbitrarily but in 90° steps, <span style="font-family: Courier New, Courier, monospace;">GtkImageView</span> now has a <span style="font-family: Courier New, Courier, monospace;">snap-angle</span> property that, when enabled, rounds the given angle to the lower 90° step. The transitions are just a test, but I like them.<br/><br/>I\'ve pushed the current status to the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch in the gtk+ git repository. It won\'t be merged like that and it\'s not done, but this way I can get some early feedback/review.<br/><br/>Until the next status report, I\'ll have to rework the zoom modes (i.e. remove them), since it\'s not clear what exactly they mean and it\'s very hard to implement the behavior of a normal image viewer like eog with them. They will be replaced by a <span style="font-family: Courier New, Courier, monospace;">fit-allocation</span> property (and maybe some more to specify some additional behavior). The <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">wiki page</a> has some more information right below the list of zoom modes.</div>\n </div>', 'fullname': 'baedert', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b49e58 (gnomenews+post+Post at 0x55d440aa1080)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b49e58 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9be60>, 'title': 'Working on Data Science User Experience', 'url': 'http://blog.ometer.com/2015/07/06/working-on-data-science-user-experience/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For the last month or so, I’ve been working at <a href="http://continuum.io/">Continuum Analytics</a>, doing product design and development to help out data scientists. I would be overjoyed to hire a few more awesome people to work with, and I’m hoping some of you reading this will be interested enough to learn more about it.</p>\n<p>If you’re used to a “software geek” vs. “nontechnical end user” dichotomy, data scientists might challenge your assumptions. They are a technical audience and they write code, but many wouldn’t consider themselves general software developers. Some of them are research scientists who write code to analyze their data. Others work in industry, finance, nonprofits, and journalism. The “data scientist” title could refer to a domain expert who’s picked up some coding, or to a software developer who’s picked up some statistics. The best data scientists, of course, are good at all sides of the <a href="http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram">hybrid role</a>.</p>\n<p>A cool thing about data scientists is that they are focused on a non-software goal (understanding some aspect of the world through data), rather than tangled up in software as an end in itself.</p>\n<p><a href="https://twitter.com/pwang">Peter Wang</a> and <a href="https://twitter.com/teoliphant">Travis Oliphant</a>, from the open source Python data science world, are the founders of Continuum.</p>\n<p>At Continuum so far I’ve been involved with <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a>, which boils down to a specialized UI toolkit for building interactive data visualizations. (Most of the technical challenges are the same ones found in any UI toolkit or “canvas” library.)</p>\n<p>Here’s the first small feature I’ve been working on, auto-reload of Bokeh apps:<br/>\n\xa0<br/>\n</p>\n<p>(This idea is <a href="http://blog.ometer.com/2014/04/22/its-not-new/">not new</a>, shout out to <a href="https://www.playframework.com/">Play Framework</a>, <a href="https://vimeo.com/36579366">Bret Victor, </a>and <a href="https://github.com/bhauman/lein-figwheel">Bruce Hauman</a> for the inspiration.)</p>\n<p>There’s a lot to do on Bokeh but it’s only part of the picture. For the projects I’m a part of, we’d like to hire more people with a background in building apps, UI toolkits, vector graphics libraries, and the like. There’s room for both design and development skillsets (anyone who cares about user experience, understands that <a href="http://blog.ometer.com/2011/10/24/it-has-to-work/">it has to work</a>, and knows how to make it work). The tech stack is mostly Python plus web tech (JS/HTML/CSS). You might enjoy the projects at Continuum if you think apps that involve numbers and data are neat (think spreadsheets, <a href="http://ipython.org/notebook.html">IPython Notebook</a>, <a href="http://www.reinteract.org/">Reinteract</a>, for example); if you enjoy UI-toolkit kind of problems; or if you like the idea of designing a development framework especially for data scientists.</p>\n<p>There are a couple of official job descriptions on the Continuum site focused on web tech (<a href="https://boards.greenhouse.io/continuum/jobs/70178#.VZp81LxnFW8">web application architect</a> and <a href="https://boards.greenhouse.io/continuum/jobs/8240#.VZp81rxnFW8">web application developer</a>).\xa0 However if you come at this from another background (as I do), such as UI toolkit implementation or spreadsheet implementation, that would be interesting too. If you have a track record of good work as a developer or designer, that’s what counts. Enthusiasm for open source or data science are big pluses. Official applications should go through the website but feel free to <a href="mailto:hpennington@continuum.io">send me email</a> and ask questions.</p></div>\n </div>', 'fullname': 'havoc', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9be60>, 'title': 'Working on Data Science User Experience', 'url': 'http://blog.ometer.com/2015/07/06/working-on-data-science-user-experience/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>For the last month or so, I’ve been working at <a href="http://continuum.io/">Continuum Analytics</a>, doing product design and development to help out data scientists. I would be overjoyed to hire a few more awesome people to work with, and I’m hoping some of you reading this will be interested enough to learn more about it.</p>\n<p>If you’re used to a “software geek” vs. “nontechnical end user” dichotomy, data scientists might challenge your assumptions. They are a technical audience and they write code, but many wouldn’t consider themselves general software developers. Some of them are research scientists who write code to analyze their data. Others work in industry, finance, nonprofits, and journalism. The “data scientist” title could refer to a domain expert who’s picked up some coding, or to a software developer who’s picked up some statistics. The best data scientists, of course, are good at all sides of the <a href="http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram">hybrid role</a>.</p>\n<p>A cool thing about data scientists is that they are focused on a non-software goal (understanding some aspect of the world through data), rather than tangled up in software as an end in itself.</p>\n<p><a href="https://twitter.com/pwang">Peter Wang</a> and <a href="https://twitter.com/teoliphant">Travis Oliphant</a>, from the open source Python data science world, are the founders of Continuum.</p>\n<p>At Continuum so far I’ve been involved with <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a>, which boils down to a specialized UI toolkit for building interactive data visualizations. (Most of the technical challenges are the same ones found in any UI toolkit or “canvas” library.)</p>\n<p>Here’s the first small feature I’ve been working on, auto-reload of Bokeh apps:<br/>\n\xa0<br/>\n</p>\n<p>(This idea is <a href="http://blog.ometer.com/2014/04/22/its-not-new/">not new</a>, shout out to <a href="https://www.playframework.com/">Play Framework</a>, <a href="https://vimeo.com/36579366">Bret Victor, </a>and <a href="https://github.com/bhauman/lein-figwheel">Bruce Hauman</a> for the inspiration.)</p>\n<p>There’s a lot to do on Bokeh but it’s only part of the picture. For the projects I’m a part of, we’d like to hire more people with a background in building apps, UI toolkits, vector graphics libraries, and the like. There’s room for both design and development skillsets (anyone who cares about user experience, understands that <a href="http://blog.ometer.com/2011/10/24/it-has-to-work/">it has to work</a>, and knows how to make it work). The tech stack is mostly Python plus web tech (JS/HTML/CSS). You might enjoy the projects at Continuum if you think apps that involve numbers and data are neat (think spreadsheets, <a href="http://ipython.org/notebook.html">IPython Notebook</a>, <a href="http://www.reinteract.org/">Reinteract</a>, for example); if you enjoy UI-toolkit kind of problems; or if you like the idea of designing a development framework especially for data scientists.</p>\n<p>There are a couple of official job descriptions on the Continuum site focused on web tech (<a href="https://boards.greenhouse.io/continuum/jobs/70178#.VZp81LxnFW8">web application architect</a> and <a href="https://boards.greenhouse.io/continuum/jobs/8240#.VZp81rxnFW8">web application developer</a>).\xa0 However if you come at this from another background (as I do), such as UI toolkit implementation or spreadsheet implementation, that would be interesting too. If you have a track record of good work as a developer or designer, that’s what counts. Enthusiasm for open source or data science are big pluses. Official applications should go through the website but feel free to <a href="mailto:hpennington@continuum.io">send me email</a> and ask questions.</p></div>\n </div>', 'fullname': 'havoc', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b49ee8 (gnomenews+post+Post at 0x55d440aa0e60)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b49ee8 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9c320>, 'title': 'Cloud Providers Desktop Integration Support', 'url': 'https://csorianognome.wordpress.com/2015/07/07/cloud-providers/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We all know the current situation with cloud providers such as Dropbox, Owncloud, Drive, etc. is less than ideal.</p>\n<p>The problems are:</p>\n<p>– Some of them use proprietary code for the client, so we can’t control the user experience on the desktop.</p>\n<p>– They provide different experience based on its application, which may result in diferent workflow and poor integration.</p>\n<p>– Integration is very poor. Probably most of this fault is the need for a common API to integrate with the desktop.</p>\n<p>– Full support for it is difficult. It needs gvfs support for syncing etc, which is not yet available, and every provider does it own thing anyway.</p>\n<p>– Uses of specific API depending on the desktop or file manager. i.e. Dropbox uses nautilus-dropbox package for it’s integration with only Nautilus. This is problematic for users of other desktops or file managers, and also the Nautilus extension API is very limited.</p>\n<p>– Need to use tray icons for the menus.</p>\n<p>So what should we do?</p>\n<p>Design team of GNOME worked on it and mockuped\xa0this (the lowest one):\xa0https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png"><img alt="cloud-mockup" class=" wp-image-182 aligncenter" height="424" src="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png?w=588&amp;h=424" width="588"/></a></p>\n<p>This allows cloud providers to add custom menu actions for them, which allow to avoid the use\xa0of tray icons and also shows the status of the cloud provider.</p>\n<p>Now the technical problem, how do we integrate in the desktop without relying on extensions and allowing other file managers/toolkit/desktops use it, so cloud providers companies start using this\xa0integration for\xa0any\xa0desktop?</p>\n<p>Luckely we have a powerful desktop-toolkit-app-agnostic tool. DBus. So I created a DBus API for it and added support for that API in gtk+. This is Nautilus with gtk+ cloud provider support in the sidebar:</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png"><img alt="cloud-providers" class=" wp-image-186 aligncenter" height="524" src="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png?w=374&amp;h=524" width="374"/></a></p>\n<p>Tada! We can see here a cloud provider in the sidebar, using the cloud provider icon, name, status and a custom menu provided by the cloud provider.</p>\n<p>How does it works?</p>\n<p>Cloud providers expose the DBus API and just listen to it’s calls, acting as a server. Also, the cloud providers implement the dbus method “CloudProviderUpdated”, which notifies to DBus that the cloud provider updated it’s status/icon/path or whatever it needs.</p>\n<p>Currently available funcionalities\xa0are:</p>\n<p>– GetIcon: which retrieves the cloud provider brand icon.</p>\n<p>– GetPath: which retrieves the folder where the cloud provider stores its files.</p>\n<p>– GetName: which retrieves the name of the cloud provider</p>\n<p>– GetStatus: which retrieves the status (idle, syncing, error)\xa0of the cloud provider</p>\n<p>And finally, it can expose a full GMenuModel through DBus for its use for any action.</p>\n<p>The good thing about this is that we can extend the DBus API to whatever it’s needed,\xa0so if someone working in a cloud provider\xa0have some suggestion, say it and we will add it.</p>\n<p>What can we do for cloud providers companies that are not interested on it? We can add support for it anyway (as far as it’s API/daemon allows), if we have access to the daemon or some APIs we can create a small shim/bridge\xa0which isolates the daemon/API calls and exposes the DBus methods, that “easy”!</p>\n<p>Now, I guess you would like to see an example of a cloud provider implementation of this desktop integration. Here it is:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38</a></p>\n<p>This example\xa0uses all capabilities, and it updates its status every two seconds.</p>\n<p>And what toolkits/DE’s/apps need to use them? Here is an example:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778</a></p>\n<p>So far it works better than expected. So future work is:</p>\n<p>– Make sure it provides\xa0what all cloud providers need</p>\n<p>– Convince cloud providers companies to use this instead of random extensions, specific DE code, or complex clients. And if not, implement a shim/bridge on our own for them.</p>\n<p>– As you can see, it’s in a wip branch, so it’s needs more work.</p>\n<p>Hope you like the progress\xa0we are doing to\xa0integrate some\xa03rd party services in our linux desktop.</p><br/> <a href="http://feeds.wordpress.com/1.0/gocomments/csorianognome.wordpress.com/180/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csorianognome.wordpress.com/180/"/></a> <img alt="" border="0" height="1" src="https://pixel.wp.com/b.gif?host=csorianognome.wordpress.com&amp;blog=53027067&amp;post=180&amp;subd=csorianognome&amp;ref=&amp;feed=1" width="1"/></div>\n </div>', 'fullname': 'csoriano89', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9c320>, 'title': 'Cloud Providers Desktop Integration Support', 'url': 'https://csorianognome.wordpress.com/2015/07/07/cloud-providers/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We all know the current situation with cloud providers such as Dropbox, Owncloud, Drive, etc. is less than ideal.</p>\n<p>The problems are:</p>\n<p>– Some of them use proprietary code for the client, so we can’t control the user experience on the desktop.</p>\n<p>– They provide different experience based on its application, which may result in diferent workflow and poor integration.</p>\n<p>– Integration is very poor. Probably most of this fault is the need for a common API to integrate with the desktop.</p>\n<p>– Full support for it is difficult. It needs gvfs support for syncing etc, which is not yet available, and every provider does it own thing anyway.</p>\n<p>– Uses of specific API depending on the desktop or file manager. i.e. Dropbox uses nautilus-dropbox package for it’s integration with only Nautilus. This is problematic for users of other desktops or file managers, and also the Nautilus extension API is very limited.</p>\n<p>– Need to use tray icons for the menus.</p>\n<p>So what should we do?</p>\n<p>Design team of GNOME worked on it and mockuped\xa0this (the lowest one):\xa0https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png"><img alt="cloud-mockup" class=" wp-image-182 aligncenter" height="424" src="https://csorianognome.files.wordpress.com/2015/07/cloud-mockup.png?w=588&amp;h=424" width="588"/></a></p>\n<p>This allows cloud providers to add custom menu actions for them, which allow to avoid the use\xa0of tray icons and also shows the status of the cloud provider.</p>\n<p>Now the technical problem, how do we integrate in the desktop without relying on extensions and allowing other file managers/toolkit/desktops use it, so cloud providers companies start using this\xa0integration for\xa0any\xa0desktop?</p>\n<p>Luckely we have a powerful desktop-toolkit-app-agnostic tool. DBus. So I created a DBus API for it and added support for that API in gtk+. This is Nautilus with gtk+ cloud provider support in the sidebar:</p>\n<p><a href="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png"><img alt="cloud-providers" class=" wp-image-186 aligncenter" height="524" src="https://csorianognome.files.wordpress.com/2015/07/cloud-providers1.png?w=374&amp;h=524" width="374"/></a></p>\n<p>Tada! We can see here a cloud provider in the sidebar, using the cloud provider icon, name, status and a custom menu provided by the cloud provider.</p>\n<p>How does it works?</p>\n<p>Cloud providers expose the DBus API and just listen to it’s calls, acting as a server. Also, the cloud providers implement the dbus method “CloudProviderUpdated”, which notifies to DBus that the cloud provider updated it’s status/icon/path or whatever it needs.</p>\n<p>Currently available funcionalities\xa0are:</p>\n<p>– GetIcon: which retrieves the cloud provider brand icon.</p>\n<p>– GetPath: which retrieves the folder where the cloud provider stores its files.</p>\n<p>– GetName: which retrieves the name of the cloud provider</p>\n<p>– GetStatus: which retrieves the status (idle, syncing, error)\xa0of the cloud provider</p>\n<p>And finally, it can expose a full GMenuModel through DBus for its use for any action.</p>\n<p>The good thing about this is that we can extend the DBus API to whatever it’s needed,\xa0so if someone working in a cloud provider\xa0have some suggestion, say it and we will add it.</p>\n<p>What can we do for cloud providers companies that are not interested on it? We can add support for it anyway (as far as it’s API/daemon allows), if we have access to the daemon or some APIs we can create a small shim/bridge\xa0which isolates the daemon/API calls and exposes the DBus methods, that “easy”!</p>\n<p>Now, I guess you would like to see an example of a cloud provider implementation of this desktop integration. Here it is:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=69cca11518a54d49c8f8c7fa7b7bf309c0a48e38</a></p>\n<p>This example\xa0uses all capabilities, and it updates its status every two seconds.</p>\n<p>And what toolkits/DE’s/apps need to use them? Here is an example:</p>\n<p><a href="https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778" rel="nofollow">https://git.gnome.org/browse/gtk+/commit/?h=wip/csoriano/cloud-providers&amp;id=ac48edbf47904fbf26452fc7f0608308baf69778</a></p>\n<p>So far it works better than expected. So future work is:</p>\n<p>– Make sure it provides\xa0what all cloud providers need</p>\n<p>– Convince cloud providers companies to use this instead of random extensions, specific DE code, or complex clients. And if not, implement a shim/bridge on our own for them.</p>\n<p>– As you can see, it’s in a wip branch, so it’s needs more work.</p>\n<p>Hope you like the progress\xa0we are doing to\xa0integrate some\xa03rd party services in our linux desktop.</p><br/> <a href="http://feeds.wordpress.com/1.0/gocomments/csorianognome.wordpress.com/180/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/csorianognome.wordpress.com/180/"/></a> <img alt="" border="0" height="1" src="https://pixel.wp.com/b.gif?host=csorianognome.wordpress.com&amp;blog=53027067&amp;post=180&amp;subd=csorianognome&amp;ref=&amp;feed=1" width="1"/></div>\n </div>', 'fullname': 'csoriano89', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b49f78 (gnomenews+post+Post at 0x55d440aa2160)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b49f78 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9bec0>, 'title': 'Summary of work from June 23rd to July 6th', 'url': 'http://oliverluo.blogspot.com/2015/07/summary-of-work-from-june-23rd-to-july.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I\'ve been working though my final exams in the last two weeks. Hope I can get some good scores.<br/><br/>About our project, I\'ve passed the midterm evaluation. Since the time left is not very casual, I will focus on this after the last exam and make EAS better.<br/><br/>By the way, I may participate the GUADEC 2015 if I can get the visa. Hope to have a nice experience with the people there.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9bec0>, 'title': 'Summary of work from June 23rd to July 6th', 'url': 'http://oliverluo.blogspot.com/2015/07/summary-of-work-from-june-23rd-to-july.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I\'ve been working though my final exams in the last two weeks. Hope I can get some good scores.<br/><br/>About our project, I\'ve passed the midterm evaluation. Since the time left is not very casual, I will focus on this after the last exam and make EAS better.<br/><br/>By the way, I may participate the GUADEC 2015 if I can get the visa. Hope to have a nice experience with the people there.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b4f048 (gnomenews+post+Post at 0x55d440aa30a0)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b4f048 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9bf20>, 'title': 'No Flash 0.5 - still fighting the legacy', 'url': 'http://www.figuiere.net/hub/blog/?2015/07/09/854-no-flash-05-still-fighting-the-legacy', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week I released <a href="https://addons.mozilla.org/en-US/firefox/addon/no-flash/versions/?page=1#version-0.5.0">No Flash 0.5</a>, my addon for Firefox to fix the legacy of video embedding done with Flash. If you are like me and don\'t have Flash installed, sometime you encounter embedded video that don\'t work. No Flash will fix <strong>some</strong> by replacing the Flash object with a HTML5 video. This is done using the proper video embedding for HTML5.</p>\n\n\n<p>This version brings the following:</p>\n<ul>\n<li>Work on more recent Firefox Nightlies with e10s - it was utterly broken</li>\n<li>Add support for embedded <em>Dailymotion</em>.</li>\n</ul>\n\n<p>Also still, supports <em>vimeo</em> and <em>YouTube</em> - the later being extremely common.</p>\n\n\n<p><strong>Update:</strong> please file issues in the <a href="https://github.com/hfiguiere/no-flash/issues">issue tracker</a>.</p></div>\n </div>', 'fullname': 'hub', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9bf20>, 'title': 'No Flash 0.5 - still fighting the legacy', 'url': 'http://www.figuiere.net/hub/blog/?2015/07/09/854-no-flash-05-still-fighting-the-legacy', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week I released <a href="https://addons.mozilla.org/en-US/firefox/addon/no-flash/versions/?page=1#version-0.5.0">No Flash 0.5</a>, my addon for Firefox to fix the legacy of video embedding done with Flash. If you are like me and don\'t have Flash installed, sometime you encounter embedded video that don\'t work. No Flash will fix <strong>some</strong> by replacing the Flash object with a HTML5 video. This is done using the proper video embedding for HTML5.</p>\n\n\n<p>This version brings the following:</p>\n<ul>\n<li>Work on more recent Firefox Nightlies with e10s - it was utterly broken</li>\n<li>Add support for embedded <em>Dailymotion</em>.</li>\n</ul>\n\n<p>Also still, supports <em>vimeo</em> and <em>YouTube</em> - the later being extremely common.</p>\n\n\n<p><strong>Update:</strong> please file issues in the <a href="https://github.com/hfiguiere/no-flash/issues">issue tracker</a>.</p></div>\n </div>', 'fullname': 'hub', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b4f0d8 (gnomenews+post+Post at 0x55d440aa3c80)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b4f0d8 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9c160>, 'title': 'In-person usability testing', 'url': 'http://opensource-usability.blogspot.com/2015/07/in-person-usability-testing.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg"/></a></div>I wanted to share this blog post from a colleague at the University of Minnesota-Twin Cities, discussing the recent usability testing they hosted for <a href="https://www.drupal.org/">Drupal</a>, the open source content management system. A few quotes:<br/><br/><blockquote class="tr_bq"><a href="https://it.umn.edu/community/inside-itumn/u-hosted-usability-evaluation-advances"><b>U-hosted usability evaluation advances Drupal 8</b></a><br/><br/>On the other side of the two-way mirror, the Drupal team of observers were able to see how volunteers’ eyes moved around the screen, where they clicked, and what they typed. Observers also were able to hear test subjects describe what they were doing as they were doing it, and what they liked and didn’t like about the pre-launch of Drupal 8<br/><br/>Best of all, observers were able to discuss what they were seeing real-time. They took notes and, after each session, identified and rated the importance of problems encountered.</blockquote><br/>In-person usability testing can be very powerful for developers, as it provides them an unfiltered view to how users are actually using their programs. Developers can witness where users are struggling with the interface, what is working well versus what areas need improvement.<br/><div class="post-note">image: University of Minnesota</div></div>\n </div>', 'fullname': 'Jim Hall', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9c160>, 'title': 'In-person usability testing', 'url': 'http://opensource-usability.blogspot.com/2015/07/in-person-usability-testing.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-uYk9S-2m754/VZ7WezdY1KI/AAAAAAAACBQ/-t8qby6occw/s1600/uofm.jpg"/></a></div>I wanted to share this blog post from a colleague at the University of Minnesota-Twin Cities, discussing the recent usability testing they hosted for <a href="https://www.drupal.org/">Drupal</a>, the open source content management system. A few quotes:<br/><br/><blockquote class="tr_bq"><a href="https://it.umn.edu/community/inside-itumn/u-hosted-usability-evaluation-advances"><b>U-hosted usability evaluation advances Drupal 8</b></a><br/><br/>On the other side of the two-way mirror, the Drupal team of observers were able to see how volunteers’ eyes moved around the screen, where they clicked, and what they typed. Observers also were able to hear test subjects describe what they were doing as they were doing it, and what they liked and didn’t like about the pre-launch of Drupal 8<br/><br/>Best of all, observers were able to discuss what they were seeing real-time. They took notes and, after each session, identified and rated the importance of problems encountered.</blockquote><br/>In-person usability testing can be very powerful for developers, as it provides them an unfiltered view to how users are actually using their programs. Developers can witness where users are struggling with the interface, what is working well versus what areas need improvement.<br/><div class="post-note">image: University of Minnesota</div></div>\n </div>', 'fullname': 'Jim Hall', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b4f168 (gnomenews+post+Post at 0x55d440aa47a0)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b4f168 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9b640>, 'title': 'Code Version Control Problem', 'url': 'http://oliverluo.blogspot.com/2015/07/code-version-control-problem.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Code version control using\xa0Git or SVN seems like too trivial to some small project, but today\'s experience taught me a lesson. <br/><br/>We, two classmates and me, are developing a small and simple distributed in-memory key-value storage system (like\xa0a system called piccolo developed by Professor Jinyang Li\'s team\xa0in New York University) these days. One of them had constructed the basic framework several days before, and we have been adding new functions based on his work. We did our version control work by simply modifying the old code, since we thought it\'s just a demo system and should not be hard to maintain. But the truth is that coding is easy, but merging our work really drives us crazy. We have to modify our new code manually to make it adapted to others changes. I have to admit that this kind of version control deprives all of my passion for coding something.<br/><br/>Today I learned that even if you are developing a really small project, wise version control is indispensable. A beard well lathered is half shaved, though.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9b640>, 'title': 'Code Version Control Problem', 'url': 'http://oliverluo.blogspot.com/2015/07/code-version-control-problem.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Code version control using\xa0Git or SVN seems like too trivial to some small project, but today\'s experience taught me a lesson. <br/><br/>We, two classmates and me, are developing a small and simple distributed in-memory key-value storage system (like\xa0a system called piccolo developed by Professor Jinyang Li\'s team\xa0in New York University) these days. One of them had constructed the basic framework several days before, and we have been adding new functions based on his work. We did our version control work by simply modifying the old code, since we thought it\'s just a demo system and should not be hard to maintain. But the truth is that coding is easy, but merging our work really drives us crazy. We have to modify our new code manually to make it adapted to others changes. I have to admit that this kind of version control deprives all of my passion for coding something.<br/><br/>Today I learned that even if you are developing a really small project, wise version control is indispensable. A beard well lathered is half shaved, though.</div>\n </div>', 'fullname': 'Oliver Luo', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b4f1f8 (gnomenews+post+Post at 0x55d440aa3f40)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b4f1f8 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9c120>, 'title': 'GTG Preferences -- REMADE!', 'url': 'http://www.jakubbrindza.com/2015/07/gtg-preferences-remade.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It seemed to take forever. Endless PR reviews, improvements, code refactoring and hours spent working on editor, removing deprecated icons or search.<br/><br/>However, at the beginning of this week I finally managed to get the pull requests to a state when they could be merged. As a consequence, Getting Things GNOME! now features (well, from 99% I dare to say) most up-to-date widgets and properties. Moreover, master version is now boosted with re-designed editor window as you can see from the photo here:<br/><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s400/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: left;">As for another challenge I decided to face in my summer experience, I chose to refurbish preferences.</div><div class="separator" style="clear: both; text-align: left;">All in all, the beginnings were not that tough. Currently, my version features re-newed implementation of the general settings.</div><div class="separator" style="clear: both; text-align: left;">In the (very soon) future, I\'ll moreover be implementing also the plugins and synchronisation services in the same preferences window. This way, users will be experiencing a much simpler to use and friendlier environment when it comes to customisation of the app.</div><div class="separator" style="clear: both; text-align: left;"><br/></div><div class="separator" style="clear: both; text-align: left;">Without some exhausting descriptions, take a look at the current additions to the Getting Things GNOME!</div><div class="separator" style="clear: both; text-align: left;"><br/></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Preferences window now features side menu for three major categories and main window to view particular settings</td></tr></tbody></table><br/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Plugins and Synchronisation services. Coming soon!</td></tr></tbody></table><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: left;"><br/></div><br/>In Plugins window, the plan is to re-make entirely the current way of viewing individual plugins. I will be trying to get rid of the treeview and place each plugin in a separate GtkBox. I\'m particularly looking forward to this. The reason is that I have not yet tried to create one general widget that would be applied to all the elements, but rather created all the individual elements. This was both inefficient and exhausting, so I\'d love to learn how to apply the same pattern to several places.<br/><br/>As for the synchronisation services, I\'m sure you\'ll notice some refurbishments here, too, in a short period of time.<br/><br/>The overall aim is to produce a simple, sleek and easy-to-use interface that will be 100% functional and bring Getting Things GNOME again a bit closer to GNOME 3 standards.<br/><br/>I love the changes and so I hope you do as well.<br/><br/>On the other hand, for the past few hours I\'ve been trying to make parents viewing feature in Task Editor functional, since this was one of the features which lacked in <a href="http://www.jakubbrindza.com/2015/06/another-huge-leap-for-gtg.html" target="_blank">my last PR</a>, even though the UI is present. Not many break-throughs in there so far though.<br/>Getting Things GNOME features a function get_parents() whose name I found rather misleading since I found out that it does not give you a list of all parents a task may have (assuming it\'s a task of level 2+), but it gives you only the most direct, one-level-up parent. This makes the entire problem a bit more difficult since I cannot easily, let\'s say, make an array that would hold all the names (or task id\'s) of a task\'s parents which would then be placed into a popover.<br/>This may be tough, but it\'s a core feature which needs to be implemented, so I want to work on it.<br/><br/>Stay tuned!</div>\n </div>', 'fullname': 'Jakub Brindza', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9c120>, 'title': 'GTG Preferences -- REMADE!', 'url': 'http://www.jakubbrindza.com/2015/07/gtg-preferences-remade.html', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It seemed to take forever. Endless PR reviews, improvements, code refactoring and hours spent working on editor, removing deprecated icons or search.<br/><br/>However, at the beginning of this week I finally managed to get the pull requests to a state when they could be merged. As a consequence, Getting Things GNOME! now features (well, from 99% I dare to say) most up-to-date widgets and properties. Moreover, master version is now boosted with re-designed editor window as you can see from the photo here:<br/><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://3.bp.blogspot.com/-P4VIu-UTPX0/VZ_SYuDT8wI/AAAAAAAAEH8/ti8zCCQIXWM/s400/Screen%2BShot%2B2015-07-10%2Bat%2B16.09.21.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: center;"><br/></div><div class="separator" style="clear: both; text-align: left;">As for another challenge I decided to face in my summer experience, I chose to refurbish preferences.</div><div class="separator" style="clear: both; text-align: left;">All in all, the beginnings were not that tough. Currently, my version features re-newed implementation of the general settings.</div><div class="separator" style="clear: both; text-align: left;">In the (very soon) future, I\'ll moreover be implementing also the plugins and synchronisation services in the same preferences window. This way, users will be experiencing a much simpler to use and friendlier environment when it comes to customisation of the app.</div><div class="separator" style="clear: both; text-align: left;"><br/></div><div class="separator" style="clear: both; text-align: left;">Without some exhausting descriptions, take a look at the current additions to the Getting Things GNOME!</div><div class="separator" style="clear: both; text-align: left;"><br/></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-CoU4QWjHmLg/VZ_Tpu8rpSI/AAAAAAAAEIU/DhgjcoG2u1k/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.58.55.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Preferences window now features side menu for three major categories and main window to view particular settings</td></tr></tbody></table><br/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://4.bp.blogspot.com/-LIXHRLPYK3Q/VZ_TpCtKfaI/AAAAAAAAEIM/twl3lFVCIYQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.02.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Plugins and Synchronisation services. Coming soon!</td></tr></tbody></table><br/><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s1600/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-sf2kZIa1C2I/VZ_TnxplIUI/AAAAAAAAEII/De2Z-mwa-mQ/s400/Screen%2BShot%2B2015-07-10%2Bat%2B10.59.05.png" width="400"/></a></div><div class="separator" style="clear: both; text-align: left;"><br/></div><br/>In Plugins window, the plan is to re-make entirely the current way of viewing individual plugins. I will be trying to get rid of the treeview and place each plugin in a separate GtkBox. I\'m particularly looking forward to this. The reason is that I have not yet tried to create one general widget that would be applied to all the elements, but rather created all the individual elements. This was both inefficient and exhausting, so I\'d love to learn how to apply the same pattern to several places.<br/><br/>As for the synchronisation services, I\'m sure you\'ll notice some refurbishments here, too, in a short period of time.<br/><br/>The overall aim is to produce a simple, sleek and easy-to-use interface that will be 100% functional and bring Getting Things GNOME again a bit closer to GNOME 3 standards.<br/><br/>I love the changes and so I hope you do as well.<br/><br/>On the other hand, for the past few hours I\'ve been trying to make parents viewing feature in Task Editor functional, since this was one of the features which lacked in <a href="http://www.jakubbrindza.com/2015/06/another-huge-leap-for-gtg.html" target="_blank">my last PR</a>, even though the UI is present. Not many break-throughs in there so far though.<br/>Getting Things GNOME features a function get_parents() whose name I found rather misleading since I found out that it does not give you a list of all parents a task may have (assuming it\'s a task of level 2+), but it gives you only the most direct, one-level-up parent. This makes the entire problem a bit more difficult since I cannot easily, let\'s say, make an array that would hold all the names (or task id\'s) of a task\'s parents which would then be placed into a popover.<br/>This may be tough, but it\'s a core feature which needs to be implemented, so I want to work on it.<br/><br/>Stay tuned!</div>\n </div>', 'fullname': 'Jakub Brindza', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||||gnomenews.post._generate_thumbnail(<Post object at 0x7fd7e0b4f288 (gnomenews+post+Post at 0x55d440aa58a0)>), returned None
14:28:06 DEBUG __init__.py:41 |||||||gnomenews.post.__init__(<Post object at 0x7fd7e0b4f288 (uninitialized at 0x0)>, {'date': <GDateTime at 0x55d440a9b6c0>, 'title': 'Diary of a new board member', 'url': 'https://blogs.gnome.org/aday/2015/07/13/diary-of-a-new-board-member/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So <a href="https://mail.gnome.org/archives/foundation-announce/2015-June/msg00003.html">this</a> happened. It’s the first time I’ve served on the Foundation’s Board of Directors, and I thought it would be good to write about the experience.</p>\n<p>The GNOME Foundation Board can often be a bit opaque. Generally it works in the background, and while you can get a sense of some of its activities through <a href="https://wiki.gnome.org/FoundationBoard/Minutes">the minutes</a>, it is easy to forget that the board is out there doing its thing. </p>\n<p>It has been a bit of a revelation to see just how active the board is. It’s a bit like I’ve discovered a new, secret world inside the GNOME project. And there’s a lot happening in this world – it is always busy.</p>\n<p>There’s an IRC channel and several private mailing lists, which are very active. And there are tasks being taken care of all the time – I already have a list of three or four things that I’m sorting out, for example.</p>\n<p>I was impressed by the first board meeting I participated in. There was a clear agenda that was followed, minutes were recorded as the meeting went on, and the meeting ran to time. Many of the agenda items weren’t particularly glamorous, but they were things that need to be done, and there was a good level of scrutiny around each one.</p>\n<p>There have been a few other things that have surprised me about the board. I wasn’t fully aware of how institutionalised it is. We are governed by our <a href="https://www.gnome.org/wp-content/uploads/2012/02/bylaws.pdf">bylaws</a>, which set out how the board has to operate, as well as some of its obligations. I read them recently, and was surprised by a couple of things that are in there. If you’re a Foundation member, you might be interested to take a look.</p>\n<p>Another thing is just how important Rosanna is to the board. For those who don’t know, Rosanna is the Foundation’s Director of Operations. Not only does she take care of a lot of the Foundation’s adminstration, but she is a valuable source of knowledge and expertise, having worked for the Foundation for numerous years. She’s another one of those aspects of the Foundation that is both important and, often, hidden from view.</p>\n<p>I’m still busy learning the ropes, and there’s a lot I have to learn. So far it is satisfying work though, and good to see another side of the GNOME project.</p></div>\n </div>', 'fullname': 'Allan', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 ||||||gnomenews.view._add_a_new_preview(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>, {'date': <GDateTime at 0x55d440a9b6c0>, 'title': 'Diary of a new board member', 'url': 'https://blogs.gnome.org/aday/2015/07/13/diary-of-a-new-board-member/', 'content': '<div xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So <a href="https://mail.gnome.org/archives/foundation-announce/2015-June/msg00003.html">this</a> happened. It’s the first time I’ve served on the Foundation’s Board of Directors, and I thought it would be good to write about the experience.</p>\n<p>The GNOME Foundation Board can often be a bit opaque. Generally it works in the background, and while you can get a sense of some of its activities through <a href="https://wiki.gnome.org/FoundationBoard/Minutes">the minutes</a>, it is easy to forget that the board is out there doing its thing. </p>\n<p>It has been a bit of a revelation to see just how active the board is. It’s a bit like I’ve discovered a new, secret world inside the GNOME project. And there’s a lot happening in this world – it is always busy.</p>\n<p>There’s an IRC channel and several private mailing lists, which are very active. And there are tasks being taken care of all the time – I already have a list of three or four things that I’m sorting out, for example.</p>\n<p>I was impressed by the first board meeting I participated in. There was a clear agenda that was followed, minutes were recorded as the meeting went on, and the meeting ran to time. Many of the agenda items weren’t particularly glamorous, but they were things that need to be done, and there was a good level of scrutiny around each one.</p>\n<p>There have been a few other things that have surprised me about the board. I wasn’t fully aware of how institutionalised it is. We are governed by our <a href="https://www.gnome.org/wp-content/uploads/2012/02/bylaws.pdf">bylaws</a>, which set out how the board has to operate, as well as some of its obligations. I read them recently, and was surprised by a couple of things that are in there. If you’re a Foundation member, you might be interested to take a look.</p>\n<p>Another thing is just how important Rosanna is to the board. For those who don’t know, Rosanna is the Foundation’s Director of Operations. Not only does she take care of a lot of the Foundation’s adminstration, but she is a valuable source of knowledge and expertise, having worked for the Foundation for numerous years. She’s another one of those aspects of the Foundation that is both important and, often, hidden from view.</p>\n<p>I’m still busy learning the ropes, and there’s a lot I have to learn. So far it is satisfying work though, and good to see another side of the GNOME project.</p></div>\n </div>', 'fullname': 'Allan', 'is_read': False}), returned None
14:28:06 DEBUG __init__.py:41 |||||gnomenews.view.update_new_items(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>), returned None
14:28:06 DEBUG __init__.py:41 ||||gnomenews.view.update(<NewView object at 0x7fd7e0b43318 (gnomenews+view+NewView at 0x55d440d4b880)>), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.window.view_changed(<Window object at 0x7fd7e0b34ca8 (gnomenews+window+Window at 0x55d440bb6270)>, <Stack object at 0x7fd7e0b431f8 (GtkStack at 0x55d440d4b6d0)>, <GParamObject 'visible-child'>), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.view.__init__(<SearchView object at 0x7fd7e0b4f318 (uninitialized at 0x0)>, <Tracker object at 0x7fd7e0bb6990 (gnomenews+tracker+Tracker at 0x55d440a95600)>, 'search'), returned None
14:28:06 DEBUG __init__.py:41 |||gnomenews.toolbar.set_stack(<Toolbar object at 0x7fd7e0b3ac60 (gnomenews+toolbar+Toolbar at 0x55d440a97960)>, <Stack object at 0x7fd7e0b431f8 (GtkStack at 0x55d440d4b6d0)>), returned None
14:28:06 DEBUG __init__.py:41 ||gnomenews.window._add_views(<Window object at 0x7fd7e0b34ca8 (gnomenews+window+Window at 0x55d440bb6270)>), returned None
14:28:07 DEBUG __init__.py:41 |gnomenews.window._setup_view(<Window object at 0x7fd7e0b34ca8 (gnomenews+window+Window at 0x55d440bb6270)>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.window.__init__(<Window object at 0x7fd7e0b34ca8 (uninitialized at 0x0)>, <Application object at 0x7fd7e0b30630 (gnomenews+application+Application at 0x55d4409512a0)>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b43f30 (gnomenews+post+Post at 0x55d440a9b660)>, <WebView object at 0x7fd7e0b49cf0 (WebKitWebView at 0x55d440e1a400)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49dc8 (gnomenews+post+Post at 0x55d440a9e900)>, <WebView object at 0x7fd7e0b49e10 (WebKitWebView at 0x55d440e1a7e0)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49e58 (gnomenews+post+Post at 0x55d440aa1080)>, <WebView object at 0x7fd7e0b49ea0 (WebKitWebView at 0x55d440e1abc0)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49ee8 (gnomenews+post+Post at 0x55d440aa0e60)>, <WebView object at 0x7fd7e0b49f30 (WebKitWebView at 0x55d440e1afa0)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49f78 (gnomenews+post+Post at 0x55d440aa2160)>, <WebView object at 0x7fd7e0b49fc0 (WebKitWebView at 0x55d440e1b380)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f048 (gnomenews+post+Post at 0x55d440aa30a0)>, <WebView object at 0x7fd7e0b4f090 (WebKitWebView at 0x55d440e1b760)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f0d8 (gnomenews+post+Post at 0x55d440aa3c80)>, <WebView object at 0x7fd7e0b4f120 (WebKitWebView at 0x55d440e1bb40)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f168 (gnomenews+post+Post at 0x55d440aa47a0)>, <WebView object at 0x7fd7e0b4f1b0 (WebKitWebView at 0x55d440e1bf20)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f1f8 (gnomenews+post+Post at 0x55d440aa3f40)>, <WebView object at 0x7fd7e0b4f240 (WebKitWebView at 0x55d440e623c0)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f288 (gnomenews+post+Post at 0x55d440aa58a0)>, <WebView object at 0x7fd7e0b4f2d0 (WebKitWebView at 0x55d440e627a0)>, <enum WEBKIT_LOAD_STARTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b43f30 (gnomenews+post+Post at 0x55d440a9b660)>, <WebView object at 0x7fd7e0b49cf0 (WebKitWebView at 0x55d440e1a400)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49dc8 (gnomenews+post+Post at 0x55d440a9e900)>, <WebView object at 0x7fd7e0b49e10 (WebKitWebView at 0x55d440e1a7e0)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49dc8 (gnomenews+post+Post at 0x55d440a9e900)>, <WebView object at 0x7fd7e0b49e10 (WebKitWebView at 0x55d440e1a7e0)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49e58 (gnomenews+post+Post at 0x55d440aa1080)>, <WebView object at 0x7fd7e0b49ea0 (WebKitWebView at 0x55d440e1abc0)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49e58 (gnomenews+post+Post at 0x55d440aa1080)>, <WebView object at 0x7fd7e0b49ea0 (WebKitWebView at 0x55d440e1abc0)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49ee8 (gnomenews+post+Post at 0x55d440aa0e60)>, <WebView object at 0x7fd7e0b49f30 (WebKitWebView at 0x55d440e1afa0)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49f78 (gnomenews+post+Post at 0x55d440aa2160)>, <WebView object at 0x7fd7e0b49fc0 (WebKitWebView at 0x55d440e1b380)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b49f78 (gnomenews+post+Post at 0x55d440aa2160)>, <WebView object at 0x7fd7e0b49fc0 (WebKitWebView at 0x55d440e1b380)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f048 (gnomenews+post+Post at 0x55d440aa30a0)>, <WebView object at 0x7fd7e0b4f090 (WebKitWebView at 0x55d440e1b760)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f048 (gnomenews+post+Post at 0x55d440aa30a0)>, <WebView object at 0x7fd7e0b4f090 (WebKitWebView at 0x55d440e1b760)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f0d8 (gnomenews+post+Post at 0x55d440aa3c80)>, <WebView object at 0x7fd7e0b4f120 (WebKitWebView at 0x55d440e1bb40)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f168 (gnomenews+post+Post at 0x55d440aa47a0)>, <WebView object at 0x7fd7e0b4f1b0 (WebKitWebView at 0x55d440e1bf20)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f168 (gnomenews+post+Post at 0x55d440aa47a0)>, <WebView object at 0x7fd7e0b4f1b0 (WebKitWebView at 0x55d440e1bf20)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f1f8 (gnomenews+post+Post at 0x55d440aa3f40)>, <WebView object at 0x7fd7e0b4f240 (WebKitWebView at 0x55d440e623c0)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f288 (gnomenews+post+Post at 0x55d440aa58a0)>, <WebView object at 0x7fd7e0b4f2d0 (WebKitWebView at 0x55d440e627a0)>, <enum WEBKIT_LOAD_COMMITTED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._draw_thumbnail(<Post object at 0x7fd7e0b4f288 (gnomenews+post+Post at 0x55d440aa58a0)>, <WebView object at 0x7fd7e0b4f2d0 (WebKitWebView at 0x55d440e627a0)>, <enum WEBKIT_LOAD_FINISHED of type WebKitLoadEvent>), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b49dc8 (gnomenews+post+Post at 0x55d440a9e900)>, <WebView object at 0x7fd7e0b49e10 (WebKitWebView at 0x55d440e1a7e0)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x55d440eb4340)>, None), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b49e58 (gnomenews+post+Post at 0x55d440aa1080)>, <WebView object at 0x7fd7e0b49ea0 (WebKitWebView at 0x55d440e1abc0)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x55d440eb4270)>, None), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b49f78 (gnomenews+post+Post at 0x55d440aa2160)>, <WebView object at 0x7fd7e0b49fc0 (WebKitWebView at 0x55d440e1b380)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x55d440eb41a0)>, None), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b4f048 (gnomenews+post+Post at 0x55d440aa30a0)>, <WebView object at 0x7fd7e0b4f090 (WebKitWebView at 0x55d440e1b760)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x55d440eb40d0)>, None), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b4f168 (gnomenews+post+Post at 0x55d440aa47a0)>, <WebView object at 0x7fd7e0b4f1b0 (WebKitWebView at 0x55d440e1bf20)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x55d440eb4000)>, None), returned None
14:28:07 DEBUG __init__.py:41 gnomenews.post._save_thumbnail(<Post object at 0x7fd7e0b4f288 (gnomenews+post+Post at 0x55d440aa58a0)>, <WebView object at 0x7fd7e0b4f2d0 (WebKitWebView at 0x55d440e627a0)>, <Task object at 0x7fd7e0b4fca8 (GTask at 0x7fd774002c60)>, None), returned None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment