{"id":2702,"date":"2017-01-02T08:00:00","date_gmt":"2017-01-02T08:00:00","guid":{"rendered":"http:\/\/www.diogonunes.com\/blog\/?p=2702"},"modified":"2020-05-15T14:23:23","modified_gmt":"2020-05-15T13:23:23","slug":"internet-button-tutorial-ide-atom-github","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/","title":{"rendered":"Internet Button: Web IDE, Atom, GitHub (tutorial #1)"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?resize=580%2C387\" alt=\"Internet-Button-Tutorial1\" width=\"580\" height=\"387\" class=\"aligncenter size-full wp-image-2800\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?w=984&amp;ssl=1 984w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?resize=400%2C267&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/p>\n<h3>First things first.<\/h3>\n<p><!--more--><\/p>\n<p>Now that you can <a href=\"http:\/\/www.diogonunes.com\/blog\/internet-button-unboxing-first-steps\">connect to your Photon<\/a>, it&#8217;s time to give it some intelligence &#8211; time to get coding! To manage that code let&#8217;s create a git repo.<\/p>\n<h3>GitHub<\/h3>\n<p>The official documentation recommends that you fork their <a href=\"https:\/\/github.com\/spark\/InternetButton\">InternetButton<\/a> repo. You don&#8217;t have to, but it helps to follow their repo structure.<\/p>\n<p>Here&#8217;s what I recommend you do:<\/p>\n<ol>\n<li>Download their repo as a zip. <a href=\"https:\/\/youtu.be\/D8K90hX4PrE?t=20s\">Unzip it<\/a>.<\/li>\n<li>Keep the folder structure.<\/li>\n<li>That <code>spark.json<\/code> is mandatory. Customize it according to your project.\n<ul>\n<li>Keep in mind that your project&#8217;s name must be unique<\/li>\n<li>Version should follow the format X.Y.Z (and can&#8217;t go backward!)<\/li>\n<\/ul>\n<\/li>\n<li>Leave untouched the <code>InternetButton<\/code> C++ files, you&#8217;ll need those.<\/li>\n<li>Delete the <code>Examples<\/code> folder.<\/li>\n<li>Commit. Push. Your repo should be public for now. After you connect it to your Particle&#8217;s account you can make it private.<\/li>\n<\/ol>\n<h3>Web IDE<\/h3>\n<p>Take a deep breath &#8212; you&#8217;re about to enter the depths of hell. This is where I started but I would avoid it if I could. You can try to skip this step and go directly to the Local IDE section below.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-web-ide.png?resize=580%2C557\" alt=\"particle web ide\" width=\"580\" height=\"557\" class=\"aligncenter size-full wp-image-2708\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-web-ide.png?w=790&amp;ssl=1 790w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-web-ide.png?resize=400%2C384&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-web-ide.png?resize=768%2C737&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/p>\n<ol>\n<li>Go to <a href=\"https:\/\/build.particle.io\">build.particle.io<\/a> and create an account. Login.<\/li>\n<li>Click the <strong>Devices<\/strong> icon, in the lower left corner. Make sure your device is listed there.<\/li>\n<li>Click the <strong>Libraries<\/strong> icon. Scroll to Community Libraries and search for the name of your repo (that&#8217;s why it needed to be public). Then click <strong>Include in app<\/strong>.<\/li>\n<li>From what I recall, that should connect your GitHub with your Particle. There was a lot of trial and error, click and cross fingers involved.<\/li>\n<\/ol>\n<p>DISCLAIMER: <strong>Forget their web IDE.<\/strong> Period. It&#8217;s too complicated, nothing makes sense, the UI is not intuitive, the files and libraries management is a nightmare. Kill it with fire. Carry on.<\/p>\n<h3>Local IDE (Particle Dev)<\/h3>\n<p><a href=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-local-ide.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-local-ide.png?resize=580%2C307\" alt=\"particle local ide\" width=\"580\" height=\"307\" class=\"aligncenter size-full wp-image-2710\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-local-ide.png?w=945&amp;ssl=1 945w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-local-ide.png?resize=400%2C212&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/07\/particle-local-ide.png?resize=768%2C406&amp;ssl=1 768w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/p>\n<p>This is their web IDE but <del>done right<\/del> better. It&#8217;s a custom version of <a href=\"https:\/\/atom.io\/\">Atom text editor<\/a>. This is the one place to go to develop and deploy code for your Internet Button.<\/p>\n<ul>\n<li>The <strong>Compile<\/strong> button, sends you code to Particle&#8217;s cloud and compiles it. If you get and error it will tell you the file and line (but you can&#8217;t jump to the source code&#8230;).<\/li>\n<li>The <strong>Publish<\/strong> button, starts by compiling your code and then deploys it on your connected device (displayed on the footer). Your Internet Button&#8217;s should start blinking when this happens.<\/li>\n<\/ul>\n<p>Your main code should be inside a <code>*.ino<\/code> file. That file should contain at least two methods: <code>begin()<\/code> and a <code>loop()<\/code>. Now is the time to looks at the examples at the <a href=\"https:\/\/github.com\/spark\/InternetButton\">InternetButton<\/a> repo. We&#8217;ll go through some of them on the next part of this tutorial.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>First things first.<\/p>\n","protected":false},"author":1,"featured_media":2800,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[29,63,64,31],"class_list":["post-2702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-coding","tag-hardware","tag-internet-button","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"In this Particle Internet Button tutorial we&#039;ll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"In this Particle Internet Button tutorial we&#039;ll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-02T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-15T13:23:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"984\" \/>\n\t<meta property=\"og:image:height\" content=\"656\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Diogo Nunes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:site\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diogo Nunes\" \/>\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:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Internet Button: Web IDE, Atom, GitHub (tutorial #1)\",\"datePublished\":\"2017-01-02T08:00:00+00:00\",\"dateModified\":\"2020-05-15T13:23:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\"},\"wordCount\":457,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1\",\"keywords\":[\"coding\",\"hardware\",\"internet button\",\"tutorial\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\",\"name\":\"Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1\",\"datePublished\":\"2017-01-02T08:00:00+00:00\",\"dateModified\":\"2020-05-15T13:23:23+00:00\",\"description\":\"In this Particle Internet Button tutorial we'll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1\",\"width\":984,\"height\":656},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Internet Button: Web IDE, Atom, GitHub (tutorial #1)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/\",\"name\":\"The Geeky Gecko\",\"description\":\"The Geeky Gecko\",\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\",\"name\":\"Diogo Nunes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"width\":799,\"height\":799,\"caption\":\"Diogo Nunes\"},\"logo\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.diogonunes.com\",\"https:\/\/x.com\/dialexnunes\"],\"url\":\"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko","description":"In this Particle Internet Button tutorial we'll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.","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:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/","og_locale":"en_US","og_type":"article","og_title":"Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko","og_description":"In this Particle Internet Button tutorial we'll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.","og_url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/","og_site_name":"The Geeky Gecko","article_published_time":"2017-01-02T08:00:00+00:00","article_modified_time":"2020-05-15T13:23:23+00:00","og_image":[{"width":984,"height":656,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","type":"image\/jpeg"}],"author":"Diogo Nunes","twitter_card":"summary_large_image","twitter_creator":"@dialexnunes","twitter_site":"@dialexnunes","twitter_misc":{"Written by":"Diogo Nunes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Internet Button: Web IDE, Atom, GitHub (tutorial #1)","datePublished":"2017-01-02T08:00:00+00:00","dateModified":"2020-05-15T13:23:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/"},"wordCount":457,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","keywords":["coding","hardware","internet button","tutorial"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/","url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/","name":"Internet Button: Web IDE, Atom, GitHub (tutorial #1) - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","datePublished":"2017-01-02T08:00:00+00:00","dateModified":"2020-05-15T13:23:23+00:00","description":"In this Particle Internet Button tutorial we'll deal with the initial setup of Web IDE, Atom, GitHub. Avoid mistakes and save time with this guide.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","width":984,"height":656},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-ide-atom-github\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Internet Button: Web IDE, Atom, GitHub (tutorial #1)"}]},{"@type":"WebSite","@id":"https:\/\/www.diogonunes.com\/blog\/#website","url":"https:\/\/www.diogonunes.com\/blog\/","name":"The Geeky Gecko","description":"The Geeky Gecko","publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c","name":"Diogo Nunes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","width":799,"height":799,"caption":"Diogo Nunes"},"logo":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.diogonunes.com","https:\/\/x.com\/dialexnunes"],"url":"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial1.jpg?fit=984%2C656&ssl=1","jetpack-related-posts":[{"id":2718,"url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-click-button\/","url_meta":{"origin":2702,"position":0},"title":"Internet Button: push my buttons (tutorial #3)","author":"Diogo Nunes","date":"27 February, 2017","format":false,"excerpt":"Assign a different action to each button. Particle released a C++ library that handles much of the interaction with the Internet Button hardware components. That lib is publicly available on GitHub and includes a bunch of useful examples. To check if a button was pressed becomes as easy as buttonOn(led_number).\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial3.jpg?fit=984%2C656&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial3.jpg?fit=984%2C656&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial3.jpg?fit=984%2C656&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial3.jpg?fit=984%2C656&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2717,"url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-led-light\/","url_meta":{"origin":2702,"position":1},"title":"Internet Button: let there be light (tutorial #2)","author":"Diogo Nunes","date":"30 January, 2017","format":false,"excerpt":"Turning leds on and displaying light patterns. You can use Particle's mobile app to light the small built-in led on Photon (the chip). There's a guide here. It actually worked and the led turned blue. But we have an Internet Button with 11 large and bright LEDs. Those are the\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial2.jpg?fit=984%2C656&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial2.jpg?fit=984%2C656&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial2.jpg?fit=984%2C656&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial2.jpg?fit=984%2C656&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2970,"url":"https:\/\/www.diogonunes.com\/blog\/github-pages-custom-domain-namecheap\/","url_meta":{"origin":2702,"position":2},"title":"Using a custom domain on GitHub Pages (step by step for Namecheap)","author":"Diogo Nunes","date":"10 April, 2017","format":false,"excerpt":"No extra cost for using a custom domain. To have a website online you need two things: a domain and a host. I'm assuming you already bought a cool and cheap domain on Namecheap (they're great). Now the only thing missing is a place to host your website. $1 buys\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"GitHub Pages logo","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/12\/maxresdefault-1.jpg?fit=1200%2C673&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/12\/maxresdefault-1.jpg?fit=1200%2C673&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/12\/maxresdefault-1.jpg?fit=1200%2C673&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/12\/maxresdefault-1.jpg?fit=1200%2C673&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/12\/maxresdefault-1.jpg?fit=1200%2C673&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2722,"url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-post-slack\/","url_meta":{"origin":2702,"position":3},"title":"Internet Button: post to a Slack channel (tutorial #5)","author":"Diogo Nunes","date":"24 April, 2017","format":false,"excerpt":"We're going fullstack: Button > Led > Wifi > Slack Particle released a C++ library that handles much of the interaction with the Internet Button hardware components. That lib is publicly available on GitHub and includes a bunch of useful examples. First you need to include that library: Go to\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial5.jpg?fit=984%2C656&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial5.jpg?fit=984%2C656&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial5.jpg?fit=984%2C656&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial5.jpg?fit=984%2C656&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2716,"url":"https:\/\/www.diogonunes.com\/blog\/internet-button-tutorial-sound-nyan-cat\/","url_meta":{"origin":2702,"position":4},"title":"Internet Button: it even has a speaker! (tutorial #4)","author":"Diogo Nunes","date":"27 March, 2017","format":false,"excerpt":"Now you can listen to Nyan Cat on demand. Particle released a C++ library that handles much of the interaction with the Internet Button hardware components. That lib is publicly available on GitHub and includes a bunch of useful examples. First you need to include that library: Go to Particle\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial4.jpg?fit=984%2C656&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial4.jpg?fit=984%2C656&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial4.jpg?fit=984%2C656&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2016\/08\/Internet-Button-Tutorial4.jpg?fit=984%2C656&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":3692,"url":"https:\/\/www.diogonunes.com\/blog\/gitlab-pipeline-triggering-pipeline-sync\/","url_meta":{"origin":2702,"position":5},"title":"Pipeline triggering pipeline on GitLab","author":"Diogo Nunes","date":"25 May, 2020","format":false,"excerpt":"Usually when configuring a GitLab pipeline (.gitlab-ci.yml) you only care about steps in your own pipeline. Sometimes however, you may want to trigger other pipelines (of other repositories) as a step of your own pipeline. Context: You have your app divided into multiple microservices\/repos. There's another repo which contains a\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/s270904456481439361_p798_i2_w1799.jpeg?fit=1200%2C712&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/s270904456481439361_p798_i2_w1799.jpeg?fit=1200%2C712&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/s270904456481439361_p798_i2_w1799.jpeg?fit=1200%2C712&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/s270904456481439361_p798_i2_w1799.jpeg?fit=1200%2C712&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/s270904456481439361_p798_i2_w1799.jpeg?fit=1200%2C712&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/2702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/comments?post=2702"}],"version-history":[{"count":1,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/2702\/revisions"}],"predecessor-version":[{"id":3787,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/2702\/revisions\/3787"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/2800"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=2702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=2702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=2702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}