{"id":9274,"date":"2010-08-30T12:00:28","date_gmt":"2010-08-30T19:00:28","guid":{"rendered":"https:\/\/dylanmc.ca\/\/-\/?post_type=jetpack-portfolio&#038;p=9274"},"modified":"2019-08-06T13:29:00","modified_gmt":"2019-08-06T20:29:00","slug":"harvest-ubuntu-com","status":"publish","type":"jetpack-portfolio","link":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/","title":{"rendered":"Harvest"},"content":{"rendered":"\n<ul class=\"dylanmccall-list-plain wp-block-list\"><li><em>Google Summer of Code 2010<\/em><\/li><\/ul>\n\n\n\n<ul class=\"dylanmccall-list-badges wp-block-list\"><li>web<\/li><li>design<\/li><li>ubuntu<\/li><li>django<\/li><li>python<\/li><\/ul>\n\n\n\n<p>Harvest was a web service  to guide people who want to contribute to Ubuntu. It aggregated small bug reports and other quick tasks which could use attention. For <a href=\"http:\/\/code.google.com\/soc\/\">Google Summer of Code<\/a> 2010, I worked with <a href=\"http:\/\/daniel.holba.ch\/blog\/\">Daniel Holbach<\/a> to design and implement its new web frontend.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Part of my project was to make Harvest <em>fast<\/em>. It maintained a large database with very similar data, so it was up to Harvest&#8217;s interface to make that data particularly useful. I added filters to quickly narrow down results, though my implementation was unusual: searching happened in real time. As the user selects filters, results immediately start to appear. This improved perceived performance and encouraged exploration. The system was carefully tuned to keep the number of unnecessary database hits to a minimum. Whenever something is pulled from the database, there is some expectation it will be useful to the end user.<\/p>\n\n\n\n<p>I made many changes to Harvest&#8217;s Django backend, while the frontend was augmented with jQuery&#8217;s Ajax utilities to streamline interaction. I had a lot to write about the project (and I was trying to get university credits), so, I wrote <a href=\"https:\/\/dylanmc.ca\/wp-content\/uploads\/gsoc2010-Harvest-Retrospective.pdf\">a short retrospective<\/a> examining some of the decisions I made and lessons I learned. In May 2011, I updated the design to match Ubuntu&#8217;s official branding guidelines.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More information<\/h2>\n\n\n\n<ul class=\"dylanmccall-list-plain wp-block-list\"><li><a href=\"https:\/\/dylanmc.ca\/\/-\/blog\/tag\/harvest\/\">Blog posts<\/a><\/li><li><a href=\"https:\/\/dylanmc.ca\/wp-content\/uploads\/gsoc2010-Harvest-Retrospective.pdf\">Project retrospective<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<ul class=\"dylanmccall-list-plain wp-block-list\">\n<li><em>Google Summer of Code 2010<\/em><\/li>\n<\/ul>\n<ul class=\"dylanmccall-list-badges wp-block-list\">\n<li>web<\/li>\n<li>design<\/li>\n<li>ubuntu<\/li>\n<li>django<\/li>\n<li>python<\/li>\n<\/ul>\n<p>Harvest was a web service  to guide people who want to contribute to Ubuntu. It aggregated small bug reports and other quick tasks which could use attention. For <a href=\"http:\/\/code.google.com\/soc\/\">Google Summer of Code<\/a> 2010, I worked with <a href=\"http:\/\/daniel.holba.ch\/blog\/\">Daniel Holbach<\/a> to design and implement its new web frontend&hellip;<\/p>\n","protected":false},"author":2,"featured_media":9630,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"jetpack-portfolio-type":[],"jetpack-portfolio-tag":[61,58,74,72,62,60],"class_list":["post-9274","jetpack-portfolio","type-jetpack-portfolio","status-publish","format-standard","has-post-thumbnail","hentry","jetpack-portfolio-tag-design","jetpack-portfolio-tag-django","jetpack-portfolio-tag-open-source","jetpack-portfolio-tag-python","jetpack-portfolio-tag-ubuntu","jetpack-portfolio-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 - 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\/\/-\/portfolio\/harvest-ubuntu-com\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harvest - Dylan McCall\" \/>\n<meta property=\"og:description\" content=\"Google Summer of Code 2010  webdesignubuntudjangopython  Harvest was a web service to guide people who want to contribute to Ubuntu. It aggregated small bug reports and other quick tasks which could use attention. For Google Summer of Code 2010, I worked with Daniel Holbach to design and implement its new web frontend&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/\" \/>\n<meta property=\"og:site_name\" content=\"Dylan McCall\" \/>\n<meta property=\"article:modified_time\" content=\"2019-08-06T20:29:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"3726\" \/>\n\t<meta property=\"og:image:height\" content=\"2235\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/\",\"url\":\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/\",\"name\":\"Harvest - Dylan McCall\",\"isPartOf\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1\",\"datePublished\":\"2010-08-30T19:00:28+00:00\",\"dateModified\":\"2019-08-06T20:29:00+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1\",\"width\":3726,\"height\":2235},{\"@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\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harvest - 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\/\/-\/portfolio\/harvest-ubuntu-com\/","og_locale":"en_US","og_type":"article","og_title":"Harvest - Dylan McCall","og_description":"Google Summer of Code 2010  webdesignubuntudjangopython  Harvest was a web service to guide people who want to contribute to Ubuntu. It aggregated small bug reports and other quick tasks which could use attention. For Google Summer of Code 2010, I worked with Daniel Holbach to design and implement its new web frontend&hellip;","og_url":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/","og_site_name":"Dylan McCall","article_modified_time":"2019-08-06T20:29:00+00:00","og_image":[{"width":3726,"height":2235,"url":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1","type":"image\/png"}],"twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/","url":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/","name":"Harvest - Dylan McCall","isPartOf":{"@id":"https:\/\/dylanmc.ca\/\/-\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage"},"image":{"@id":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1","datePublished":"2010-08-30T19:00:28+00:00","dateModified":"2019-08-06T20:29:00+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dylanmc.ca\/\/-\/portfolio\/harvest-ubuntu-com\/#primaryimage","url":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1","contentUrl":"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/harvest-ubuntu-com-feature.png?fit=3726%2C2235&ssl=1","width":3726,"height":2235},{"@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"}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio\/9274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio"}],"about":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/types\/jetpack-portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":21,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio\/9274\/revisions"}],"predecessor-version":[{"id":9871,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio\/9274\/revisions\/9871"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/media\/9630"}],"wp:attachment":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/media?parent=9274"}],"wp:term":[{"taxonomy":"jetpack-portfolio-type","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio-type?post=9274"},{"taxonomy":"jetpack-portfolio-tag","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/jetpack-portfolio-tag?post=9274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}