{"id":62,"date":"2010-08-17T18:17:00","date_gmt":"2010-08-18T01:17:00","guid":{"rendered":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/harvest-gsoc-week-12\/"},"modified":"2024-08-14T09:20:05","modified_gmt":"2024-08-14T16:20:05","slug":"harvest-gsoc-week-12","status":"publish","type":"post","link":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/","title":{"rendered":"Harvest + GSoC week 12"},"content":{"rendered":"\n<p>Well, I managed my <a href=\"https:\/\/code.edge.launchpad.net\/~dylanmccall\/harvest\/visual-tweaks\">last-minute merge request<\/a> for Summer of Code 2010, and with that done it is time for my last GSoC 2010 blog post!<\/p>\n\n\n\n<p>I am really glad I did this. It&#8217;s taught me a lot about myself (having never done a project in this fashion before) and I&#8217;m happy with how it turned out. GSoC was a nice change of pace and I hope to keep this up for a while!<\/p>\n\n\n\n<p><small>(<a href=\"http:\/\/projecthamster.wordpress.com\/\">Hamster<\/a> still says I&#8217;m a slacker. I need to convince it otherwise)<\/small><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>So, here are the results of some recent tinkering:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"191\" data-attachment-id=\"540\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/nomatchingopportunities\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?fit=953%2C348&amp;ssl=1\" data-orig-size=\"953,348\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"NoMatchingOpportunities\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?fit=300%2C109&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?fit=525%2C191&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?resize=525%2C191&#038;ssl=1\" alt=\"\" class=\"wp-image-540\" title=\"NoMatchingOpportunities\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?resize=750%2C273&amp;ssl=1 750w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?resize=300%2C109&amp;ssl=1 300w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/NoMatchingOpportunities.png?w=953&amp;ssl=1 953w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"370\" data-attachment-id=\"541\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/viewingpackage\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?fit=1065%2C750&amp;ssl=1\" data-orig-size=\"1065,750\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"ViewingPackage\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?fit=300%2C211&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?fit=525%2C370&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?resize=525%2C370&#038;ssl=1\" alt=\"\" class=\"wp-image-541\" title=\"ViewingPackage\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?resize=750%2C528&amp;ssl=1 750w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?resize=300%2C211&amp;ssl=1 300w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/ViewingPackage.png?w=1065&amp;ssl=1 1065w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>First, of course: new font! It requests the delightful UbuntuBeta font first and borrows some conventions from the&nbsp;<a href=\"http:\/\/design.canonical.com\/the-toolkit\/guides-for-websites\/\">Ubuntu Web guidelines<\/a>.<br>Daniel added help text to the opportunity list filters. He gave each one a tooltip with a nice explanation.<br>There&#8217;s now a permalink for every source package, a nice Edit button for each opportunity, and some other small visual tweaks. Just little stuff like that.<\/p>\n\n\n\n<p>Previously, every opportunity in Harvest had a text box labelled \u201cComment\u201d that saved to a single database field. The idea was someone could fill it in with useful information for other Harvest users. It felt sort of like Launchpad&#8217;s Whiteboard feature in Blueprints.<\/p>\n\n\n\n<p>I decided that implementation would encourage very complex comments. That&#8217;s a problem because Harvest aggregates other stuff. There&#8217;s a good chance whatever it links to will have <em>its own<\/em> comment system. I wanted to differentiate Harvest&#8217;s comments so they would never be seen as alternatives to whatever is in a referenced bug tracker. Instead, these should be, from top to bottom, specifically for small pointers.<\/p>\n\n\n\n<p>So, we&nbsp;<a href=\"https:\/\/code.launchpad.net\/~dylanmccall\/harvest\/opportunity-edit\">played with it<\/a> and I added Notes (which is apparently the least commonly implemented synonym of Comments). Notes are little messages you can add to opportunities. Each note is basically a text field limited to 250 characters. No special formatting and no newlines. When I write one, I think of IRC.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"194\" data-attachment-id=\"542\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/editingopportunity1\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?fit=662%2C245&amp;ssl=1\" data-orig-size=\"662,245\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"EditingOpportunity1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?fit=300%2C111&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?fit=525%2C194&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?resize=525%2C194&#038;ssl=1\" alt=\"\" class=\"wp-image-542\" title=\"EditingOpportunity1\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?w=662&amp;ssl=1 662w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity1.png?resize=300%2C111&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"404\" data-attachment-id=\"543\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/editingopportunity2\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&amp;ssl=1\" data-orig-size=\"662,510\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"EditingOpportunity2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=300%2C231&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=525%2C404&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?resize=525%2C404&#038;ssl=1\" alt=\"\" class=\"wp-image-543\" title=\"EditingOpportunity2\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?w=662&amp;ssl=1 662w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?resize=300%2C231&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>The feature isn&#8217;t as quick to find as I&#8217;d like (<a href=\"https:\/\/bugs.edge.launchpad.net\/harvest\/+bug\/618799\">there&#8217;s an&nbsp;<s>app<\/s> bug report for that<\/a>), but it&#8217;ll be good to see how people use Harvest before adding more stuff. There are probably all sorts of cool things that could be done, so I&#8217;d love to know in the comments here if you have an idea!<\/p>\n\n\n\n<p><small>(\u2026And I can&#8217;t believe I haven&#8217;t done this yet)<\/small><br><strong>Thank you<\/strong> to <a href=\"http:\/\/daniel.holba.ch\/blog\/\">Daniel<\/a> for being a great mentor! I can confirm the rumours are true: he is an excellent guy. I&#8217;ve really enjoyed working with him.<\/p>\n\n\n\n<p>I didn&#8217;t quite get to everything I wanted for GSoC (and I have to admit I got carried away with design trivialities this week), but now we&#8217;re just a few small pieces away from a spectacular tool for Ubuntu developers. After a bit of a coding \/ <em>remembering last year&#8217;s math course<\/em> break, I&#8217;ll be back helping with some more of those bits. It&#8217;s going to be <span style=\"text-decoration: underline;\">fun<\/span>!<\/p>\n\n\n\n<p>Here&#8217;s a completely unrelated bit of good news: I learned that UDS-N is now short for <a href=\"http:\/\/www.markshuttleworth.com\/archives\/478\">UDS-Natty<\/a>, and I miraculously have no exams anywhere near late October ;)<br>So, assuming I can find a narwhal and convince it I am indeed <a href=\"http:\/\/en.wiktionary.org\/wiki\/Natty\">smart and fashionable<\/a>, I&#8217;m totally hoping to get there, meet people, learn lots of stuff and wax lyrical about Harvest, slideshows and release notes (as I do). Should be fun!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, I managed my <a href=\"https:\/\/code.edge.launchpad.net\/~dylanmccall\/harvest\/visual-tweaks\">last-minute merge request<\/a> for Summer of Code 2010, and with that done it is time for my last GSoC 2010 blog post!<\/p>\n<p>I am really glad I did this. It&#8217;s taught me a lot about myself (having never done a project in this fashion before) and I&#8217;m happy with how it turned out. GSoC was a nice change of pace and I hope to keep this up for a while!<\/p>\n<p><small>(<a href=\"http:\/\/projecthamster.wordpress.com\/\">Hamster<\/a> still says I&#8217;m a slacker&hellip; I need to convince it otherwise)<\/small><\/p>\n","protected":false},"author":2,"featured_media":543,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federate","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35],"tags":[33,20,29],"class_list":["post-62","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gsoc-2010","tag-design","tag-harvest","tag-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Harvest + GSoC week 12 - Dylan McCall<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harvest + GSoC week 12 - Dylan McCall\" \/>\n<meta property=\"og:description\" content=\"Well, I managed my last-minute merge request for Summer of Code 2010, and with that done it is time for my last GSoC 2010 blog post!  I am really glad I did this. It&#8217;s taught me a lot about myself (having never done a project in this fashion before) and I&#8217;m happy with how it turned out. GSoC was a nice change of pace and I hope to keep this up for a while!  (Hamster still says I&#8217;m a slacker&hellip; I need to convince it otherwise)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\" \/>\n<meta property=\"og:site_name\" content=\"Dylan McCall\" \/>\n<meta property=\"article:published_time\" content=\"2010-08-18T01:17:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-14T16:20:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"662\" \/>\n\t<meta property=\"og:image:height\" content=\"510\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dylan McCall\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dylan McCall\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\"},\"author\":{\"name\":\"Dylan McCall\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5\"},\"headline\":\"Harvest + GSoC week 12\",\"datePublished\":\"2010-08-18T01:17:00+00:00\",\"dateModified\":\"2024-08-14T16:20:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\"},\"wordCount\":578,\"image\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1\",\"keywords\":[\"design\",\"Harvest\",\"web\"],\"articleSection\":[\"GSoC 2010\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\",\"url\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\",\"name\":\"Harvest + GSoC week 12 - Dylan McCall\",\"isPartOf\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1\",\"datePublished\":\"2010-08-18T01:17:00+00:00\",\"dateModified\":\"2024-08-14T16:20:05+00:00\",\"author\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1\",\"width\":\"662\",\"height\":\"510\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#website\",\"url\":\"https:\/\/dylanmc.ca\/\/-\/\",\"name\":\"Dylan McCall\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dylanmc.ca\/\/-\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5\",\"name\":\"Dylan McCall\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94ab3a7e6a884542205e0408711cd54bb1fd5f4e90e7a5f621a54656a18a037?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94ab3a7e6a884542205e0408711cd54bb1fd5f4e90e7a5f621a54656a18a037?s=96&d=mm&r=g\",\"caption\":\"Dylan McCall\"},\"description\":\"Software developer, tea drinker, GNOME contributor. Occasionally a raving fanatic.\",\"sameAs\":[\"https:\/\/dylanmc.ca\/\/-\"],\"url\":\"https:\/\/dylanmc.ca\/\/-\/blog\/author\/dylan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harvest + GSoC week 12 - Dylan McCall","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/","og_locale":"en_US","og_type":"article","og_title":"Harvest + GSoC week 12 - Dylan McCall","og_description":"Well, I managed my last-minute merge request for Summer of Code 2010, and with that done it is time for my last GSoC 2010 blog post!  I am really glad I did this. It&#8217;s taught me a lot about myself (having never done a project in this fashion before) and I&#8217;m happy with how it turned out. GSoC was a nice change of pace and I hope to keep this up for a while!  (Hamster still says I&#8217;m a slacker&hellip; I need to convince it otherwise)","og_url":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/","og_site_name":"Dylan McCall","article_published_time":"2010-08-18T01:17:00+00:00","article_modified_time":"2024-08-14T16:20:05+00:00","og_image":[{"width":662,"height":510,"url":"https:\/\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png","type":"image\/png"}],"author":"Dylan McCall","twitter_misc":{"Written by":"Dylan McCall","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#article","isPartOf":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/"},"author":{"name":"Dylan McCall","@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5"},"headline":"Harvest + GSoC week 12","datePublished":"2010-08-18T01:17:00+00:00","dateModified":"2024-08-14T16:20:05+00:00","mainEntityOfPage":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/"},"wordCount":578,"image":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1","keywords":["design","Harvest","web"],"articleSection":["GSoC 2010"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/","url":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/","name":"Harvest + GSoC week 12 - Dylan McCall","isPartOf":{"@id":"https:\/\/dylanmc.ca\/\/-\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage"},"image":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1","datePublished":"2010-08-18T01:17:00+00:00","dateModified":"2024-08-14T16:20:05+00:00","author":{"@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2010\/08\/17\/harvest-gsoc-week-12\/#primaryimage","url":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1","width":"662","height":"510"},{"@type":"WebSite","@id":"https:\/\/dylanmc.ca\/\/-\/#website","url":"https:\/\/dylanmc.ca\/\/-\/","name":"Dylan McCall","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dylanmc.ca\/\/-\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5","name":"Dylan McCall","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94ab3a7e6a884542205e0408711cd54bb1fd5f4e90e7a5f621a54656a18a037?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94ab3a7e6a884542205e0408711cd54bb1fd5f4e90e7a5f621a54656a18a037?s=96&d=mm&r=g","caption":"Dylan McCall"},"description":"Software developer, tea drinker, GNOME contributor. Occasionally a raving fanatic.","sameAs":["https:\/\/dylanmc.ca\/\/-"],"url":"https:\/\/dylanmc.ca\/\/-\/blog\/author\/dylan\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/EditingOpportunity2.png?fit=662%2C510&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcXOQX-10","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":9,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":11023,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/62\/revisions\/11023"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/media\/543"}],"wp:attachment":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/tags?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}