{"id":1627,"date":"2013-09-22T19:42:19","date_gmt":"2013-09-23T02:42:19","guid":{"rendered":"https:\/\/dylanmc.ca\/\/-\/?p=1627"},"modified":"2021-12-01T11:25:17","modified_gmt":"2021-12-01T19:25:17","slug":"gnome-break-timer-final-report","status":"publish","type":"post","link":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/","title":{"rendered":"GNOME Break Timer: Final report"},"content":{"rendered":"\n<p>Well, it&#8217;s September, so I guess it&#8217;s time to call it quits with that whole &#8220;summer&#8221; thing. This has been a really nice few months. I&#8217;m very grateful that I could participate in <a href=\"http:\/\/wiki.gnome.org\/SummerOfCode2013\">Google Summer of Code<\/a>\u00a0this year with my project to build a shiny new Break Timer application for <a href=\"http:\/\/www.gnome.org\/\">GNOME 3<\/a>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/img_20130922_170607\/\" rel=\"attachment wp-att-1643\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"244\" data-attachment-id=\"1643\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/img_20130922_170607\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?fit=736%2C342&amp;ssl=1\" data-orig-size=\"736,342\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;2.65&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Nexus 4&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1379869567&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.6&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.0015600624024961&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"IMG_20130922_170607\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;This was meant to be a picture of Fall&amp;#8217;s first day of torrential wind and rain, but the rain stopped as soon as I went outside and this is all I got. Stupid rain.&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?fit=300%2C139&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?fit=525%2C244&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?resize=525%2C244&#038;ssl=1\" alt=\"This was meant to be a picture of Fall's first day of torrential wind and rain, but the rain stopped as soon as I went outside and this is all I got. Stupid rain.\" class=\"wp-image-1643\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?w=736&amp;ssl=1 736w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg?resize=300%2C139&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><figcaption>This was meant to be a picture of Fall&#8217;s first day of torrential wind and rain, but the rain stopped as soon as I went outside and this is all I got. Stupid rain.<\/figcaption><\/figure><\/div>\n\n\n\n<p>So, where am I leaving you? With GNOME Break Timer 1.1, of course! (And I&#8217;m not leaving). I think my project over the summer has been successful. At times I have had the unmistakeable feeling that I was trying to spread too little butter over too much bread, but we always found something interesting to work on (including a nifty and GNOMEy side project that I&#8217;ll talk about really soon, but mostly on Break Timer itself) and I think we have some good quality code as a result \u2014 and a lovely little application, too!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GNOME Break Timer 1.1<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/screenshot-from-2013-09-22-143524\/\" rel=\"attachment wp-att-1632\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"307\" data-attachment-id=\"1632\" data-permalink=\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/screenshot-from-2013-09-22-143524\/\" data-orig-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?fit=736%2C430&amp;ssl=1\" data-orig-size=\"736,430\" 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=\"GNOME Break Timer 1.1\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Well, it has an About dialog&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?fit=300%2C175&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?fit=525%2C307&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?resize=525%2C307&#038;ssl=1\" alt=\"Well, it has an About dialog\" class=\"wp-image-1632\" srcset=\"https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?w=736&amp;ssl=1 736w, https:\/\/i0.wp.com\/dylanmc.ca\/wp-content\/uploads\/Screenshot-from-2013-09-22-143524.png?resize=300%2C175&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><figcaption>Well, it has an About dialog<\/figcaption><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/s1.dylanmccall.com\/gnome-break-timer\/code\/gnome-break-timer-1.1.tar.xz\">Source for version 1.1<\/a>&nbsp;(build it with <code>.\/configure; make; make install<\/code>)<\/li><li><a href=\"https:\/\/code.launchpad.net\/~brainbreak\/+archive\/stable\">Stable builds for Ubuntu<\/a><\/li><li><a href=\"https:\/\/launchpad.net\/~brainbreak\/+archive\/experimental\">Daily builds for Ubuntu<\/a><\/li><li><a href=\"https:\/\/git.gnome.org\/browse\/gnome-break-timer\/\">Source repository on git.gnome.org<\/a><\/li><li><a href=\"https:\/\/wiki.gnome.org\/GnomeBreakTimer\">Break Timer&#8217;s wiki page<\/a><\/li><\/ul>\n\n\n\n<p>Don&#8217;t worry, that icon is a quick placeholder, and I realize it looks confusingly similar to either a normal clock, a speaker or a power button. If you feel strongly about it, I will be eternally grateful if you check out&nbsp;<a href=\"https:\/\/wiki.gnome.org\/GnomeArt\/ArtRequests\/BreakTimerIcon\">the art request<\/a>&nbsp;for a new icon.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Here&#8217;s what I did this summer, in summary\u2026<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Cleaned up&nbsp;a lot of old code, fixing bugs and removing oodles of unwanted complexity.<\/li><li>Adopted a &#8220;normal&#8221; build system and fought off my intense fear of Automake. (I now simply dislike Automake. That feels like progress).<\/li><li>Made a cute little application to get started with Break Timer, view the current break status, and set a break schedule. I think it&#8217;s pretty cool.<\/li><li>Improved the activity tracking code so it&#8217;ll be way easier to adapt to changes in the input stack. I still need to take a close look at how this will work under Wayland, but I&#8217;m less worried, at least.<\/li><li>Polished up the &#8220;take a break&#8221; notifications and added automatic screen locking, as well as better awareness of the system in general.<\/li><li>Implemented <em>really awesome<\/em>&nbsp;state saving between sessions.<\/li><li>Investigated per-application defaults for notification appearance. (Didn&#8217;t go brilliantly, but I&#8217;m going to try again. More on that later).<\/li><li>Wrote lots of tests. I didn&#8217;t get to write any UI tests, and I was hoping to find out about testing timeouts and timers but I&#8217;ll need to save that for another day. Probably a rainy one. Still, it should be very hard for someone to (unknowingly) break any of the more fiddly parts of the application. I&#8217;m sure that will pay off in the long run.<\/li><li>Learned all about GObject, Vala, Cairo, unit tests, GNOME, and wonderful new things in GTK!<\/li><li><a href=\"https:\/\/dylanmc.ca\/\/-\/blog\/category\/gsoc\/gsoc-2013\/?order=asc\">And I wrote a blog post for each of those things<\/a>.<\/li><\/ul>\n\n\n\n<p>All sorts of people have helped me with my project over the summer. Thanks, <a href=\"http:\/\/blog.mecheye.net\/\">Jasper<\/a> and <a href=\"http:\/\/afaikblog.wordpress.com\/\">Allan<\/a> for being so patient with me :) And thanks, GNOME! You folks are all brilliant. I&#8217;m definitely going to keep going with this project and I&#8217;m excited to work with you all in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, it&#8217;s September, so I guess it&#8217;s time to call it quits with that whole &#8220;summer&#8221; thing. This has been a really nice few months. I&#8217;m very grateful that I could participate in <a href=\"http:\/\/wiki.gnome.org\/SummerOfCode2013\">Google Summer of Code<\/a>\u00a0this year with my project to build a shiny new Break Timer application for <a href=\"http:\/\/www.gnome.org\/\">GNOME 3<\/a>&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"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":"","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}},"categories":[55,1],"tags":[],"class_list":["post-1627","post","type-post","status-publish","format-standard","hentry","category-gsoc-2013","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GNOME Break Timer: Final report - 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\/2013\/09\/22\/gnome-break-timer-final-report\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GNOME Break Timer: Final report - Dylan McCall\" \/>\n<meta property=\"og:description\" content=\"Well, it&#8217;s September, so I guess it&#8217;s time to call it quits with that whole &#8220;summer&#8221; thing. This has been a really nice few months. I&#8217;m very grateful that I could participate in Google Summer of Code\u00a0this year with my project to build a shiny new Break Timer application for GNOME 3&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\" \/>\n<meta property=\"og:site_name\" content=\"Dylan McCall\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-23T02:42:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-01T19:25:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg\" \/>\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\/2013\/09\/22\/gnome-break-timer-final-report\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\"},\"author\":{\"name\":\"Dylan McCall\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5\"},\"headline\":\"GNOME Break Timer: Final report\",\"datePublished\":\"2013-09-23T02:42:19+00:00\",\"dateModified\":\"2021-12-01T19:25:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\"},\"wordCount\":591,\"image\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg\",\"articleSection\":[\"GSoC 2013\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\",\"url\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\",\"name\":\"GNOME Break Timer: Final report - Dylan McCall\",\"isPartOf\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg\",\"datePublished\":\"2013-09-23T02:42:19+00:00\",\"dateModified\":\"2021-12-01T19:25:17+00:00\",\"author\":{\"@id\":\"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage\",\"url\":\"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg\",\"contentUrl\":\"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg\"},{\"@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":"GNOME Break Timer: Final report - 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\/2013\/09\/22\/gnome-break-timer-final-report\/","og_locale":"en_US","og_type":"article","og_title":"GNOME Break Timer: Final report - Dylan McCall","og_description":"Well, it&#8217;s September, so I guess it&#8217;s time to call it quits with that whole &#8220;summer&#8221; thing. This has been a really nice few months. I&#8217;m very grateful that I could participate in Google Summer of Code\u00a0this year with my project to build a shiny new Break Timer application for GNOME 3&hellip;","og_url":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/","og_site_name":"Dylan McCall","article_published_time":"2013-09-23T02:42:19+00:00","article_modified_time":"2021-12-01T19:25:17+00:00","og_image":[{"url":"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg","type":"","width":"","height":""}],"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\/2013\/09\/22\/gnome-break-timer-final-report\/#article","isPartOf":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/"},"author":{"name":"Dylan McCall","@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5"},"headline":"GNOME Break Timer: Final report","datePublished":"2013-09-23T02:42:19+00:00","dateModified":"2021-12-01T19:25:17+00:00","mainEntityOfPage":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/"},"wordCount":591,"image":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage"},"thumbnailUrl":"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg","articleSection":["GSoC 2013"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/","url":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/","name":"GNOME Break Timer: Final report - Dylan McCall","isPartOf":{"@id":"https:\/\/dylanmc.ca\/\/-\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage"},"image":{"@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage"},"thumbnailUrl":"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg","datePublished":"2013-09-23T02:42:19+00:00","dateModified":"2021-12-01T19:25:17+00:00","author":{"@id":"https:\/\/dylanmc.ca\/\/-\/#\/schema\/person\/c244419a779c5414c768bc53ac5fb2d5"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dylanmc.ca\/\/-\/blog\/2013\/09\/22\/gnome-break-timer-final-report\/#primaryimage","url":"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg","contentUrl":"https:\/\/dylanmc.ca\/wp-content\/uploads\/IMG_20130922_170607.jpg"},{"@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":"","jetpack_shortlink":"https:\/\/wp.me\/pcXOQX-qf","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/1627","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=1627"}],"version-history":[{"count":26,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/1627\/revisions"}],"predecessor-version":[{"id":11004,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/posts\/1627\/revisions\/11004"}],"wp:attachment":[{"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/media?parent=1627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/categories?post=1627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dylanmc.ca\/\/-\/wp-json\/wp\/v2\/tags?post=1627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}