{"id":15,"date":"2019-12-03T00:00:00","date_gmt":"2019-12-02T23:00:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/tweet-my-wedding-dress\/"},"modified":"2020-02-14T10:19:14","modified_gmt":"2020-02-14T09:19:14","slug":"tweet-my-wedding-dress","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/","title":{"rendered":"Tweet My Wedding Dress"},"content":{"rendered":"\n<p>This is the story of a unique wedding dress and her creator <b>Jo Franchetti<\/b>, Tech Engagement Manager at Trainline. Jo\u2019s got 6 years experience as a front end developer and has worked in various parts of the tech industry from startups, agencies, charities to large organisations. Her opinions and experiences often turns into interesting and inspiring facts. She will also deliver a speech at <strong>Codemotion Madrid<\/strong> about <em>Perfectionism, Impostor Syndrome and Anxiety &#8211; Understanding your fears and learning to be kind to yourself<\/em> (<a href=\"https:\/\/events.codemotion.com\/conferences\/madrid\/2019\/speaker\/5305\/\">more information here<\/a>).<\/p>\n\n\n\n<p>In this article, however, we present a very interesting and peculiar project that Jo presented during <b>Codemotion Rome 2019<\/b>. The idea is conceptually simple: <b>making a wedding dress that can change colour based on tweets<\/b>! Interesting, but not so simple to realise as one might think at first.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/jofrankdress-768x1024.jpg\" alt=\"\" class=\"wp-image-1190\"\/><\/figure><\/div>\n\n\n\n<p>In this article, we will try to summarise Franchetti\u2019s speech, to understand how this idea became a reality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware requirements<\/h2>\n\n\n\n<p>In order to create her dress, Franchetti started looking at some <span id=\"urn:enhancement-4178d6af\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_hardware\">hardware<\/span> solutions to realise it. She needed <span id=\"urn:enhancement-526bfe2d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span> and some microprocessors to program them based on tweets &#8211; thus an Internet connection was also a requirement. There are many solutions to do this: Arduino and Raspberry Pi are probably two of the most common boards for electronic DIY, that can perfectly fit this case. However, for this project she opted for an <b>Adafruit Feather Huzzah<\/b>, which she highlighted to be small, lightweight and well-documented. It also has a WiFi board to connect to the Internet and to receive information from Twitter. Moreover, it cost <b>less than 20 dollars<\/b>. It seems a perfect choice indeed.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"570\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/Adafruitboard.jpg\" alt=\"\" class=\"wp-image-1191\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/Adafruitboard.jpg 1020w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/Adafruitboard-300x168.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/Adafruitboard-768x429.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/Adafruitboard-400x225.jpg 400w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/figure><\/div>\n\n\n\n<p>When looking at the <span id=\"urn:enhancement-198def49\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span>, many products are available out there. Among them, Adafruit also produces some individual <b>programmable pixel <span id=\"urn:enhancement-b4bd79e5\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span><\/b>, namely <b>Flora NeoPixels<\/b>, which seemed the best option considering the choice of basing the project on an Adafruit board. However, cost is also a crucial factor: for the dress, Franchetti needed about 100 NeoPixels, and this would have meant going over her budget. So she opted for a cheaper <span id=\"urn:enhancement-75cfd97f\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_versioning\">version<\/span> of the NeoPixels produced by <b>Knockoff<\/b>, that also has the advantage of having a white-coloured <span id=\"urn:enhancement-36ac0f99\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/background_process\">background<\/span>, resulting in a better integration in her white wedding dress.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"382\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels-1024x382.png\" alt=\"\" class=\"wp-image-1192\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels-1024x382.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels-300x112.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels-768x287.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels-1200x449.png 1200w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixels.png 1203w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Of course, she also needed other basic stuff that are quite common for makers, like soldering iron and solder, wires, glue gun and so on. She also needed some white tulle for integrating everything in her dress, but here we will try to focus more on <span id=\"urn:enhancement-f415d43a\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_hardware\">hardware<\/span> and software.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Arduino IDE configuration<\/h2>\n\n\n\n<p>Another great advantage of the Adafruit board is the possibility of programming it by means of the <b>Arduino <span id=\"urn:enhancement-f77593a6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/integrated_development_environment\">IDE<\/span><\/b> (<span id=\"urn:enhancement-125f8a10\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_versioning\">version<\/span> 1.6.8 or greater, preferably the latest release). After downloading it from <a href=\"http:\/\/www.arduino.cc\/en\/Main\/Software\">Arduino.cc<\/a>, we need to open the preferences and add the following <span id=\"urn:enhancement-2393884\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/uniform_resource_locator\">URL<\/span> into <i>Additional Board Manager <span id=\"urn:enhancement-d2b8b6c6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/uniform_resource_locator\">URLs<\/span><\/i>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Next, using the <b>Board manager<\/b>, we have to install the <i>ESP8266<\/i> package. This will take some minutes (depending on your Internet connection speed).<\/p>\n\n\n\n<p>Finally, after rebooting the <span id=\"urn:enhancement-6c5c6188\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/integrated_development_environment\">IDE<\/span>, we will find our Adafruit board under the <i>Tools<\/i> menu.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"401\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/adafruit_arduino_ide.png\" alt=\"\" class=\"wp-image-1193\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/adafruit_arduino_ide.png 695w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/adafruit_arduino_ide-300x173.png 300w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/figure><\/div>\n\n\n\n<p>Once the <span id=\"urn:enhancement-ab93f8a9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_configuration\">configuration<\/span> is completed, we are ready to work on the board. The following snippet shows us how to test the WiFi connectivity and represents a good starting point for programming your own WiFi-based <span id=\"urn:enhancement-d1e22609\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span> on this board.<\/p>\n\n\n\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/LDFStRYt\"><\/script><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using LEDs<\/h2>\n\n\n\n<p>Now that we have everything set up, it is time to <b>connect up the <span id=\"urn:enhancement-7e524301\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span><\/b>. Considering a single <span id=\"urn:enhancement-8523e5db\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">NeoPixel<\/span> <span id=\"urn:enhancement-6351c320\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LED<\/span>, we have <b>three different pins<\/b> on it: power, data and ground. We have to connect them on the Adafruit board to 5V, pin 4 and GND respectively:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"854\" height=\"615\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/boardhl.png\" alt=\"\" class=\"wp-image-1194\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/boardhl.png 854w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/boardhl-300x216.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/boardhl-768x553.png 768w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/figure><\/div>\n\n\n\n<p>For this project, we want to have all the <span id=\"urn:enhancement-311dc571\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span> receiving the same data information. Consequently, we can connect all of them in series, accordingly to the schema depicted in the following figure:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/neopixelsconnected-1024x262.png\" alt=\"\" class=\"wp-image-1195\"\/><\/figure><\/div>\n\n\n\n<p>It is worth noting that, during the development, we can use the power line provided by our computer, connecting the board via USB. When wearing the final working dress, a good power source can be a <b>USB power bank<\/b>.<\/p>\n\n\n\n<p>When everything is set up, we can test if everything is working by means of the strand test available from the Arduino <span id=\"urn:enhancement-5d078ed\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/integrated_development_environment\">IDE<\/span>. If we did everything correctly, we should see something like this:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"409\" height=\"442\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/strandtest.gif\" alt=\"\" class=\"wp-image-1196\"\/><\/figure><\/div>\n\n\n\n<p>The final component we need in order to turn on the <span id=\"urn:enhancement-8e4931c5\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span> is the <b>Cheerlights <span id=\"urn:enhancement-e1c49ecd\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span><\/b>. This allows us to specify which RGB color our <span id=\"urn:enhancement-7fdec32d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/light-emitting_diode\">LEDs<\/span> have to show. Uploading Cheerlights code on the board is quite easy and can be done by means of the Arduino <span id=\"urn:enhancement-da454db7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/integrated_development_environment\">IDE<\/span>. Full instructions are available on <a href=\"https:\/\/learn.adafruit.com\/cheerlights\/libraries-and-code\">this documentation page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Twitter API<\/h2>\n\n\n\n<p>The last thing we need to set up is a Twitter account that will represent the dress. Basically, we want that when someone tweets, mentioning the account and a colour, that colour will be shown on the dress.<\/p>\n\n\n\n<p>To achieve this, we need to read the Twitter mentions and this is possible by exploiting specific <span id=\"urn:enhancement-a1b6da1c\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span>. However, we need to <b>register our <span id=\"urn:enhancement-79980b7d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> as a Twitter <span id=\"urn:enhancement-7150929\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/mobile_app\">App<\/span><\/b> from <a href=\"https:\/\/apps.twitter.com\/\">https:\/\/apps.twitter.com\/<\/a>. Such registration will allow us to get a Consumer Key and a Consumer Secret, which are required to access the Twitter <span id=\"urn:enhancement-aab15830\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span>. The following screenshot was taken from Twitter by Jo Franchetti and it contains some information about the Twitter <span id=\"urn:enhancement-d2f52928\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/mobile_app\">app<\/span> she registered for her dress:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"596\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/jodresstwitter.png\" alt=\"\" class=\"wp-image-1197\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/jodresstwitter.png 1000w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/jodresstwitter-300x179.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/jodresstwitter-768x458.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure><\/div>\n\n\n\n<p>Oncee we are done with this setup, we have many choices to interact with Twitter by means of the official <span id=\"urn:enhancement-e6a80b58\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span>. Franchetti opted for Node.js, with the Twit package, and the <a href=\"https:\/\/glitch.com\/~tweet-my-wedding-dress\">code is available on GitHub<\/a>.<\/p>\n\n\n\n<p>She also created an <span id=\"urn:enhancement-25cc2750\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/associative_array\">associative array<\/span> with the list of <a href=\"https:\/\/htmlcolorcodes.com\/color-names\/\">HTML color names<\/a>, in order to associate names to RGB values (which are the ones required from the Cheerlights <span id=\"urn:enhancement-80589274\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span>), resulting in something like this:<\/p>\n\n\n\n<p><script src=\"https:\/\/pastebin.com\/embed_js\/DX7xC4HL\"><\/script><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Jo Franchetti wore her great dress for her wedding, although it unfortunately got broken during the journey from her home to the wedding place. Luckily, she posted a video of the working dress right before the wedding and the result is pretty impressive:<\/p>\n\n\n\n<figure class=\"wp-block-embed-twitter wp-block-embed is-type-rich is-provider-twitter\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/twitter.com\/ThisIsJoFrank\/status\/970265167568277504\n<\/div><\/figure>\n\n\n\n<p>In conclusion, this is a very interesting idea and can be potentially replicated for many other dresses. In fact, this is just a starting point for many other wearable projects. And perhaps this will be a standard dress code in ten or twenty years, who knows!<\/p>\n\n\n\n<p>If you are interested in other Jo Franchetti&#8217;s experiences, do not miss the opportunity to meet her again in <strong>Codemotion Madrid 2019<\/strong>! Check the agenda at <a href=\"https:\/\/events.codemotion.com\/conferences\/madrid\/2019\/agenda\/\">this link<\/a>, and do not forget to <a href=\"https:\/\/www.eventbrite.co.uk\/e\/codemotion-madrid-2019-september-24-25-tickets-58357964242\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">get your ticket<\/a>!<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>This is the story of a unique wedding dress and her creator Jo Franchetti, Tech Engagement Manager at Trainline. Jo\u2019s got 6 years experience as a front end developer and has worked in various parts of the tech industry from startups, agencies, charities to large organisations. Her opinions and experiences often turns into interesting and&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":16,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[76],"tags":[4,3357,3358],"collections":[],"class_list":{"0":"post-15","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-design-ux","8":"tag-codemotion-rome","9":"tag-iot","10":"tag-makers","11":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tweet My Wedding Dress - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!\" \/>\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.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tweet My Wedding Dress\" \/>\n<meta property=\"og:description\" content=\"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-02T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-14T09:19:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vito Gentile\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ViGentile\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vito Gentile\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\"},\"author\":{\"name\":\"Vito Gentile\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\"},\"headline\":\"Tweet My Wedding Dress\",\"datePublished\":\"2019-12-02T23:00:00+00:00\",\"dateModified\":\"2020-02-14T09:19:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\"},\"wordCount\":1078,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg\",\"keywords\":[\"Codemotion Rome\",\"IoT\",\"Makers\"],\"articleSection\":[\"Design\/UX\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\",\"name\":\"Tweet My Wedding Dress - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg\",\"datePublished\":\"2019-12-02T23:00:00+00:00\",\"dateModified\":\"2020-02-14T09:19:14+00:00\",\"description\":\"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg\",\"width\":900,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Design\/UX\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Tweet My Wedding Dress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\",\"name\":\"Vito Gentile\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"caption\":\"Vito Gentile\"},\"description\":\"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!\",\"sameAs\":[\"https:\/\/vitogentile.it\",\"https:\/\/www.linkedin.com\/in\/vitogentile\/en\",\"https:\/\/x.com\/ViGentile\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tweet My Wedding Dress - Codemotion Magazine","description":"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!","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.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/","og_locale":"en_US","og_type":"article","og_title":"Tweet My Wedding Dress","og_description":"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-12-02T23:00:00+00:00","article_modified_time":"2020-02-14T09:19:14+00:00","og_image":[{"width":900,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg","type":"image\/jpeg"}],"author":"Vito Gentile","twitter_card":"summary_large_image","twitter_creator":"@ViGentile","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Vito Gentile","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/"},"author":{"name":"Vito Gentile","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313"},"headline":"Tweet My Wedding Dress","datePublished":"2019-12-02T23:00:00+00:00","dateModified":"2020-02-14T09:19:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/"},"wordCount":1078,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg","keywords":["Codemotion Rome","IoT","Makers"],"articleSection":["Design\/UX"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/","name":"Tweet My Wedding Dress - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg","datePublished":"2019-12-02T23:00:00+00:00","dateModified":"2020-02-14T09:19:14+00:00","description":"This is the story of a unique wedding dress and her creator Jo Franchetti, who made a wedding dress that changes colour based on tweets!","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg","width":900,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/tweet-my-wedding-dress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Design\/UX","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/design-ux\/"},{"@type":"ListItem","position":4,"name":"Tweet My Wedding Dress"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313","name":"Vito Gentile","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","caption":"Vito Gentile"},"description":"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!","sameAs":["https:\/\/vitogentile.it","https:\/\/www.linkedin.com\/in\/vitogentile\/en","https:\/\/x.com\/ViGentile"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-600x400.jpeg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-600x600.jpeg","author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg",900,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-150x150.jpeg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-300x225.jpeg",300,225,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-768x576.jpeg",768,576,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg",900,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg",900,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg",900,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled.jpeg",100,75,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-180x128.jpeg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-896x504.jpeg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-400x225.jpeg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-600x400.jpeg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/08\/1-X7VvGJOlTHiCfpLWF_hKSA-scaled-600x600.jpeg",600,600,true]},"uagb_author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_comment_info":0,"uagb_excerpt":"This is the story of a unique wedding dress and her creator Jo Franchetti, Tech Engagement Manager at Trainline. Jo\u2019s got 6 years experience as a front end developer and has worked in various parts of the tech industry from startups, agencies, charities to large organisations. Her opinions and experiences often turns into interesting and&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":6,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":2427,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/15\/revisions\/2427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/16"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=15"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}