{"id":408,"date":"2024-01-03T16:44:43","date_gmt":"2024-01-03T16:44:43","guid":{"rendered":"https:\/\/valerio.nu\/?p=408"},"modified":"2024-01-04T14:38:30","modified_gmt":"2024-01-04T14:38:30","slug":"not-an-alarm-part-3-5-from-dreams-to-requirements","status":"publish","type":"post","link":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/","title":{"rendered":"Not-An-Alarm &#8211; Part 3\/5 &#8211; From dreams to requirements"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"488\" src=\"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png\" alt=\"\" class=\"wp-image-443\" srcset=\"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png 674w, https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1-300x217.png 300w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/figure>\n<\/div>\n\n\n<p>Check out <a href=\"https:\/\/valerio.nu\/index.php\/2024\/01\/01\/not-an-alarm-part-1-5-so-im-building-a-thing-during-the-holidays\/\">Part 1<\/a> of the series if you missed it. <\/p>\n\n\n\n<p>As the project advances, the focus shifts from conceptualizing ideas to defining precise requirements\u2014laying the groundwork for a minimal yet functional Proof of Concept (PoC).<\/p>\n\n\n\n<p><strong>Minimalistic Approach to Make it Work<\/strong><\/p>\n\n\n\n<p>In the quest for simplicity, I explore the most fundamental elements necessary to bring this concept to life in a PoC:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sources:<\/strong> Initial implementation involves hardcoding news and weather location, and leveraging Google Calendar API and Google Tasks API for events. Simplifying the process by potentially hardcoding keys and settings in the backend.<\/li>\n\n\n\n<li><strong>Settings:<\/strong> Identifying essential settings\u2014potentially hardcoded prompts at this stage to speed up development.<\/li>\n\n\n\n<li><strong>Content Generation and Audio:<\/strong> Striving for simplicity in content generation by feeding generated content to a text-to-speech API. Investigating the feasibility of incorporating background music or sound.<\/li>\n\n\n\n<li><strong>Setting the Alarm:<\/strong> With the right permissions, setting the generated audio as the alarm should be straightforward.<\/li>\n<\/ul>\n\n\n\n<p><strong>The Boring Yet Essential Part &#8211; Requirements<\/strong><\/p>\n\n\n\n<p>Despite the allure of diving straight into coding, defining requirements proves pivotal. It&#8217;s not about constraint but direction\u2014a roadmap to ensure I don&#8217;t spend days chasing bugs in some arcane API (which I ended up doing anyway, but that&#8217;s a story for another day).<\/p>\n\n\n\n<p>This isn&#8217;t about external mandates; it&#8217;s about channeling efforts effectively.<\/p>\n\n\n\n<p>And these are the requirements that I managed to agree on (with myself, really). Following the RFC 2119 guidelines:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>The solution MUST:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Read data from external sources like Google Calendar APIs, Google Tasks APIs, The Guardian APIs and OpenWeatherMap APIs.<\/li>\n\n\n\n<li>Generate an audio file comprising a concise summary of the user&#8217;s daily events, tasks, relevant news, and weather conditions.<\/li>\n\n\n\n<li>Enable transfer of this generated audio file to the user&#8217;s Android phone.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>The solution MUST ensure:<\/strong>\n<ul class=\"wp-block-list\">\n<li>The generated audio file is seamlessly integrated as the alarm ringtone every day without requiring any user intervention.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Allons-y!<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-andy-039-s-blog wp-block-embed-andy-039-s-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"AXgVO8IVNO\"><a href=\"https:\/\/valerio.nu\/index.php\/2024\/01\/04\/not-an-alarm-part-4-5-bug-in-the-google-tasks-api\/\">Not-an-Alarm &#8211; Part 4\/5 &#8211; Bug in the Google Tasks API<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Not-an-Alarm &#8211; Part 4\/5 &#8211; Bug in the Google Tasks API&#8221; &#8212; Andy&#039;s blog \u2935\ufe0f\" src=\"https:\/\/valerio.nu\/index.php\/2024\/01\/04\/not-an-alarm-part-4-5-bug-in-the-google-tasks-api\/embed\/#?secret=c7eKbRkcKX#?secret=AXgVO8IVNO\" data-secret=\"AXgVO8IVNO\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Check out Part 1 of the series if you missed it. As the project advances, the focus shifts from conceptualizing ideas to defining precise requirements\u2014laying [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,31],"tags":[],"class_list":["post-408","post","type-post","status-publish","format-standard","hentry","category-inventions","category-not-an-alarm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Not-An-Alarm - Part 3\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f<\/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:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Not-An-Alarm - Part 3\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f\" \/>\n<meta property=\"og:description\" content=\"Check out Part 1 of the series if you missed it. As the project advances, the focus shifts from conceptualizing ideas to defining precise requirements\u2014laying [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/\" \/>\n<meta property=\"og:site_name\" content=\"Andy&#039;s blog \u2935\ufe0f\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-03T16:44:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-04T14:38:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png\" \/>\n<meta name=\"author\" content=\"andy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"andy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/\"},\"author\":{\"name\":\"andy\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/#\\\/schema\\\/person\\\/da69cc3da309893b0d3bc8fcef75f128\"},\"headline\":\"Not-An-Alarm &#8211; Part 3\\\/5 &#8211; From dreams to requirements\",\"datePublished\":\"2024-01-03T16:44:43+00:00\",\"dateModified\":\"2024-01-04T14:38:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/\"},\"wordCount\":324,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/valerio.nu\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-1.png\",\"articleSection\":[\"Inventions\",\"Not-An-Alarm\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/\",\"url\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/\",\"name\":\"Not-An-Alarm - Part 3\\\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/valerio.nu\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-1.png\",\"datePublished\":\"2024-01-03T16:44:43+00:00\",\"dateModified\":\"2024-01-04T14:38:30+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/#\\\/schema\\\/person\\\/da69cc3da309893b0d3bc8fcef75f128\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#primaryimage\",\"url\":\"https:\\\/\\\/valerio.nu\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-1.png\",\"contentUrl\":\"https:\\\/\\\/valerio.nu\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/image-1.png\",\"width\":674,\"height\":488},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/2024\\\/01\\\/03\\\/not-an-alarm-part-3-5-from-dreams-to-requirements\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/valerio.nu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Not-An-Alarm &#8211; Part 3\\\/5 &#8211; From dreams to requirements\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/#website\",\"url\":\"https:\\\/\\\/valerio.nu\\\/\",\"name\":\"Andy&#039;s blog \u2935\ufe0f\",\"description\":\"Abandon all hope, ye who enter here\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/valerio.nu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/valerio.nu\\\/#\\\/schema\\\/person\\\/da69cc3da309893b0d3bc8fcef75f128\",\"name\":\"andy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g\",\"caption\":\"andy\"},\"sameAs\":[\"https:\\\/\\\/valerio.nu\"],\"url\":\"https:\\\/\\\/valerio.nu\\\/index.php\\\/author\\\/giuseppe\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Not-An-Alarm - Part 3\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f","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:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/","og_locale":"en_US","og_type":"article","og_title":"Not-An-Alarm - Part 3\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f","og_description":"Check out Part 1 of the series if you missed it. As the project advances, the focus shifts from conceptualizing ideas to defining precise requirements\u2014laying [&hellip;]","og_url":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/","og_site_name":"Andy&#039;s blog \u2935\ufe0f","article_published_time":"2024-01-03T16:44:43+00:00","article_modified_time":"2024-01-04T14:38:30+00:00","og_image":[{"url":"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png","type":"","width":"","height":""}],"author":"andy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"andy","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#article","isPartOf":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/"},"author":{"name":"andy","@id":"https:\/\/valerio.nu\/#\/schema\/person\/da69cc3da309893b0d3bc8fcef75f128"},"headline":"Not-An-Alarm &#8211; Part 3\/5 &#8211; From dreams to requirements","datePublished":"2024-01-03T16:44:43+00:00","dateModified":"2024-01-04T14:38:30+00:00","mainEntityOfPage":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/"},"wordCount":324,"commentCount":1,"image":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#primaryimage"},"thumbnailUrl":"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png","articleSection":["Inventions","Not-An-Alarm"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/","url":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/","name":"Not-An-Alarm - Part 3\/5 - From dreams to requirements - Andy&#039;s blog \u2935\ufe0f","isPartOf":{"@id":"https:\/\/valerio.nu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#primaryimage"},"image":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#primaryimage"},"thumbnailUrl":"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png","datePublished":"2024-01-03T16:44:43+00:00","dateModified":"2024-01-04T14:38:30+00:00","author":{"@id":"https:\/\/valerio.nu\/#\/schema\/person\/da69cc3da309893b0d3bc8fcef75f128"},"breadcrumb":{"@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#primaryimage","url":"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png","contentUrl":"https:\/\/valerio.nu\/wp-content\/uploads\/2024\/01\/image-1.png","width":674,"height":488},{"@type":"BreadcrumbList","@id":"https:\/\/valerio.nu\/index.php\/2024\/01\/03\/not-an-alarm-part-3-5-from-dreams-to-requirements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/valerio.nu\/"},{"@type":"ListItem","position":2,"name":"Not-An-Alarm &#8211; Part 3\/5 &#8211; From dreams to requirements"}]},{"@type":"WebSite","@id":"https:\/\/valerio.nu\/#website","url":"https:\/\/valerio.nu\/","name":"Andy&#039;s blog \u2935\ufe0f","description":"Abandon all hope, ye who enter here","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/valerio.nu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/valerio.nu\/#\/schema\/person\/da69cc3da309893b0d3bc8fcef75f128","name":"andy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4852a025c6250c852814d4017f646677730a23c1ec14eb5ca36b69dcce5135a5?s=96&d=mm&r=g","caption":"andy"},"sameAs":["https:\/\/valerio.nu"],"url":"https:\/\/valerio.nu\/index.php\/author\/giuseppe\/"}]}},"_links":{"self":[{"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/posts\/408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/comments?post=408"}],"version-history":[{"count":15,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/posts\/408\/revisions"}],"predecessor-version":[{"id":447,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/posts\/408\/revisions\/447"}],"wp:attachment":[{"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/media?parent=408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/categories?post=408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/valerio.nu\/index.php\/wp-json\/wp\/v2\/tags?post=408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}