<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JeanCarl</title>
    <description>The latest articles on DEV Community by JeanCarl (@jeancarl).</description>
    <link>https://dev.to/jeancarl</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F125558%2Fc514a23d-618c-442b-8b31-a6b237b07837.png</url>
      <title>DEV Community: JeanCarl</title>
      <link>https://dev.to/jeancarl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeancarl"/>
    <language>en</language>
    <item>
      <title>How tech conferences are responding to the Coronavirus</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Wed, 04 Mar 2020 18:31:10 +0000</pubDate>
      <link>https://dev.to/jeancarl/how-tech-conferences-are-responding-to-the-coronavirus-3o34</link>
      <guid>https://dev.to/jeancarl/how-tech-conferences-are-responding-to-the-coronavirus-3o34</guid>
      <description>&lt;p&gt;As the world faces an uncertain future with the &lt;a href="https://www.who.int/health-topics/coronavirus"&gt;coronavirus 2019 (COVID-19)&lt;/a&gt;, the tech community is watching as a number of companies change how they produce and participate in conferences.&lt;/p&gt;

&lt;p&gt;Major tech conferences such as the Game Developer Conference, RSA, F8, Google I/O and tech companies including Google, Facebook, Sony, AT&amp;amp;T, IBM, and Verizon are assessing the health and safety to their communities who come together in five- and six-digit attendance numbers.&lt;/p&gt;

&lt;p&gt;Some sponsors are choosing not to participate, organizers are cancelling and postponing conferences, or "innovating" and going digital. Here are some of the announcements that have been made over the past month. &lt;/p&gt;

&lt;h2&gt;
  
  
  Mobile World Congress Conference
&lt;/h2&gt;

&lt;p&gt;On February 12th, &lt;a href="https://www.mwcbarcelona.com/gsma-statement-on-mwc-2020/"&gt;GSMA cancelled MWC Barcelona 2020 Mobile World Congress Conference&lt;/a&gt; (February 24th-27th).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cp_eZatA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a38pl79hv7flpyyed59b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cp_eZatA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/a38pl79hv7flpyyed59b.png" alt="Mobile World Congress cancelled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  RSA Conference
&lt;/h2&gt;

&lt;p&gt;The RSA Conference (February 24th-28th) continued with their plans, &lt;a href="https://www.rsaconference.com/novel-coronavirus-update"&gt;posting updates&lt;/a&gt; as the conference approached and IBM, AT&amp;amp;T Cybersecurity, and Verizon made the decision not to participate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QypaLUCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rpubhee6aq208rrbq1q1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QypaLUCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rpubhee6aq208rrbq1q1.png" alt="IBM withdraws"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jYjunshv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/svkrlvfwz5daz3dago23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jYjunshv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/svkrlvfwz5daz3dago23.png" alt="AT&amp;amp;T Cybersecurity withdraws"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--47cxk2AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3r8e865qrq1fej4kkse6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--47cxk2AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3r8e865qrq1fej4kkse6.png" alt="Verizon withdraws"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.businessinsider.com/verizon-att-ibm-pullout-rsa-virus-fears-2020-2"&gt;Business Insider mentioned&lt;/a&gt; these sponsorships could be worth up to a quarter-million dollars. It isn't clear what happened to these sponsorships.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Verizon, like AT&amp;amp;T, was a gold sponsor of the conference, which dates back to 1991 and is one of the largest events in the industry. The 2020 RSA contract says gold sponsorship costs $160,000. IBM had a platinum sponsorship that the contract says costs $265,000. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  PAX East
&lt;/h2&gt;

&lt;p&gt;On February 19th, PAX East (February 27th-March 1st) &lt;a href="https://east.paxsite.com/news/article/pax-east-update"&gt;posted an update&lt;/a&gt; that the conference would continue without the presence of Sony.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KJ79LQPx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0fqu7er9mie6mr3qrjji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KJ79LQPx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0fqu7er9mie6mr3qrjji.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  F8 Developer Conference
&lt;/h2&gt;

&lt;p&gt;On February 27th, Facebook &lt;a href="https://developers.facebook.com/blog/post/2020/02/27/important-f8-2020-update/"&gt;cancelled their F8 Developer Conference&lt;/a&gt; (May 5th-6th). Facebook will donate $500,000 to the City of San Jose where the conference was to be held.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J4MmUNsP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s2r89gboqc51z4fhxayz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J4MmUNsP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s2r89gboqc51z4fhxayz.png" alt="F8 Developer Conference"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Game Developer Conference
&lt;/h2&gt;

&lt;p&gt;On February 28th, &lt;a href="https://www.gdconf.com/news/important-gdc-2020-update"&gt;it was announced&lt;/a&gt; that the Game Developer Conference (March 16th-20th) would be postponed to later this summer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yfbotJlX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/94b52dmjx0m9fphbf5ve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yfbotJlX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/94b52dmjx0m9fphbf5ve.png" alt="GDC Postponed"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Next
&lt;/h2&gt;

&lt;p&gt;On March 2nd, &lt;a href="https://cloud.withgoogle.com/next/sf/update"&gt;Google announced they would change their upcoming Cloud Next Conference&lt;/a&gt; (April 6th-8th) into an all-digital conference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HChZfL5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f2c738gbk751qygfm71t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HChZfL5B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f2c738gbk751qygfm71t.png" alt="Google Cloud Next"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Google I/O
&lt;/h2&gt;

&lt;p&gt;On March 3rd, &lt;a href="https://events.google.com/io/"&gt;Google announced the physical Google I/O&lt;/a&gt; (May 12th-14th) was cancelled and tickets would be refunded. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aMyzfnQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jrifu9d8au8o2iwsndg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aMyzfnQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jrifu9d8au8o2iwsndg6.png" alt="Google I/O cancelled"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google said "all guests who have already registered for I/O 2020 will be automatically extended an invitation for I/O 2021."&lt;/p&gt;

&lt;h2&gt;
  
  
  KubeCon + CloudNativeCon
&lt;/h2&gt;

&lt;p&gt;On March 4th, KubeCon + CloudNativeCon Amsterdam (March 30th-April 2nd) &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/attend/novel-coronavirus-update/"&gt;announced it would reschedule for sometime in July or August 2020&lt;/a&gt;. KubeCon + CloudNativeCon + Open Source Summit Shanghai in July 2020 has been cancelled.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OmaFAyNL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7ppfcwr5z54ll4syhm1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OmaFAyNL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7ppfcwr5z54ll4syhm1m.png" alt="KubeCon + CloudNativeCon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens next?
&lt;/h2&gt;

&lt;p&gt;While it's understandably disappointing for everyone involved that a favorite conference is cancelled, it's important to keep in mind that these conferences are annual events and plan to return next year. More conferences will probably follow suit and either cancel or modify their conferences. &lt;/p&gt;

&lt;p&gt;These decisions aren't made quickly. Millions of dollars are involved in producing these conferences, attending them (travel, lodging, and noteworthy after-parties), and sponsorships. There is no doubt money has been lost in cancellation fees and non-refundable reservations -- perhaps the cost of doing business.&lt;/p&gt;

&lt;p&gt;But we also don't know what might result bringing tens of thousands of people together into close proximity. An unfortunate outbreak at a conference could devastate the reputation for the companies involved, not to mention the potential impact to the tech community losing trust. &lt;/p&gt;

&lt;p&gt;It's also a great time to try out more digital conferences. Attending virtual conferences saves money, allows many more people to attend, and offers new ways of interaction that can continue well past the couple of days that a physical conference would require. &lt;/p&gt;

&lt;h2&gt;
  
  
  CDC Guidance
&lt;/h2&gt;

&lt;p&gt;The Centers for Disease Control and Prevention (CDC) has &lt;a href="https://www.cdc.gov/coronavirus/2019-ncov/community/mass-gatherings-ready-for-covid-19.html"&gt;posted interim guidance on hosting large events&lt;/a&gt;. Here are some of the recommendations, with more details at their website.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Promote the daily practice of everyday preventive actions.&lt;/li&gt;
&lt;li&gt;Provide COVID-19 prevention supplies at your events.&lt;/li&gt;
&lt;li&gt;Plan for staff absences.&lt;/li&gt;
&lt;li&gt;Promote messages that discourage people who are sick from attending events. &lt;/li&gt;
&lt;li&gt;If possible, identify a space that can be used to isolate staff or participants who become ill at the event.&lt;/li&gt;
&lt;li&gt;Plan ways to limit in-person contact for staff supporting your events.&lt;/li&gt;
&lt;li&gt;Develop ﬂexible refund policies for participants.&lt;/li&gt;
&lt;li&gt;Identify actions to take if you need to postpone or cancel events. &lt;/li&gt;
&lt;li&gt;Update and distribute timely and accurate emergency communication information.&lt;/li&gt;
&lt;li&gt;Identify and address potential language, cultural, and disability barriers associated with communicating COVID-19 information to event staff and participants.&lt;/li&gt;
&lt;li&gt;Distribute health messages about COVID-19 to event staff and participants. &lt;/li&gt;
&lt;li&gt;Put into action strategies for postponing or canceling your events.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What conferences are you planning to attend and how are you responding?&lt;/p&gt;

</description>
      <category>conferences</category>
    </item>
    <item>
      <title>Hunting for spirits with the Internet of Things</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Thu, 31 Oct 2019 22:28:10 +0000</pubDate>
      <link>https://dev.to/jeancarl/hunting-for-spirits-with-the-internet-of-things-25eo</link>
      <guid>https://dev.to/jeancarl/hunting-for-spirits-with-the-internet-of-things-25eo</guid>
      <description>&lt;p&gt;There are moments in life when you might find yourself building something you just can't believe they are asking you to do. A couple of years ago, IBM held a small conference on the Queen Mary in Long Beach. I had the opportunity to support a Watson Internet of Things workshop where, and I'll quote exactly, "we want to hunt ghosts with Watson."  My face probably turned as white as a ghost, but, I was up for the engineering challenge.&lt;/p&gt;

&lt;p&gt;I've meant to write about the experience, alas, other things have taken my attention. Yet, this story keeps resurfacing so I thought I would detail some of the technical aspects as they still apply in solutions today. Happy Halloween!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.legendsofamerica.com/ca-queenmary/"&gt;Legends of America&lt;/a&gt; states the "Queen Mary is one of the most haunted places in the world with as many as 150 known spirits lurking upon the ship. Over the past 60 years, the Queen Mary has been the site of at least 49 reported deaths, not to mention having gone through the terrors of war, so it comes as no surprise that spectral spirits of her vivid past continue to walk within her rooms and hallways."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k-lIhZgR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bfs1ighqekrsj7caw894.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k-lIhZgR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/bfs1ighqekrsj7caw894.JPG" alt="Control Room"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of the workshop was to capture sensor data and visual imagery that could then be analyzed by participants on the main deck. Four custom designed rigs included a cellphone camera, a Raspberry Pi with a SenseHAT, a speaker to play audio, and microphone to capture sound, were mounted in key places that are said to be haunted: the pool area, cargo hold, the Green room, and the Safe Room. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--evu6EknL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ggvnixso3scqd42obig9.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--evu6EknL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ggvnixso3scqd42obig9.JPG" alt="Camera rig in the pool area"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Participants used a dashboard to subscribe to IoT events and visualize sensor data, which for much of the two days remained consistent. The Raspberry Pi SenseHAT captured temperature, humidity, and pressure. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RdYsDkPQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fk5hgss6jl47hiw86g8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RdYsDkPQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fk5hgss6jl47hiw86g8m.png" alt="Watson IoT Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using an IP Camera app on each mobile device made the camera images available over the private network specifically run throughout the ship for this project (remember ships are metal and Wi-Fi wasn't available). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fc2gwR3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/02ckbqtwc5yuctkryovn.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fc2gwR3_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/02ckbqtwc5yuctkryovn.JPG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using Node-RED, we captured the four camera images every five seconds and updated a simple webpage. The images were stored into the Object Storage service in IBM Cloud and analyzed using Watson Visual Recognition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yYPrUevu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fr0v1vzxrodxr7ft18us.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yYPrUevu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/fr0v1vzxrodxr7ft18us.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which leads into a fun side-story. Prior to the event, with my limited knowledge of paranormal activity, I searched Google for pictures of ghosts to train the model with. Here's what you might find:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YvJZ-9pY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7ddo1gzy2s4cqap0ldun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YvJZ-9pY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7ddo1gzy2s4cqap0ldun.png" alt="Ghosts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Which is exactly what ghosts do not look like, without going into too much depth (they can be orbs of lights). If I did this project again, I would use image comparison and when the image changed significantly (which for much of the two days remained constant as you would expect), classify the image using Watson's custom image classifiers (could identify objects like people) to determine what object(s) now have. Again, this wasn't a scientific project by any means.&lt;/p&gt;

&lt;p&gt;Participants could also record their voices and send the audio down to these rooms to attempt to summon a response from a spirit. This was built using Node-RED's dashboard nodes. There was also an option to have Watson's Text to Speech synthesize a message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l3ZbqC9k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/drfj1veracfbdjb5qdzk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l3ZbqC9k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/drfj1veracfbdjb5qdzk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While this workshop ranks high on my list of memorable workshops, it also had a number of lessons that I learned from.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hardware is difficult
&lt;/h2&gt;

&lt;p&gt;During the setup day, there were a number of technical issues ranging from the camera app going blank because the phone turned off to confirming the devices were still functioning after overheating with the displays being set to full brightness for hours. While these devices were still accessible (though a long walk from the control room), I learned why having as much control remotely is important with IoT. Can you restart devices remotely? If they lose connectivity, what was the last state a device was in? Capturing and saving this data can help debug failures. At one point we even used the camera to watch whether the LEDs on the SenseHAT changed colors to see if the network was intermittent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validate your assumptions
&lt;/h2&gt;

&lt;p&gt;As I mentioned earlier, searching for ghost pictures on the internet leads to a lot of false positives. AI is only as good as the data it is trained on. Garbage in, garbage out is absolutely accurate. &lt;/p&gt;

&lt;h2&gt;
  
  
  Be selective in what data you capture/save
&lt;/h2&gt;

&lt;p&gt;Eager not to miss that one split second a spirit was present, we tinkered with the interval at which images were saved: 1, 5, 10 seconds. If you do the math, that calculates to 240 images a minute or 691,200 images over two days. Over half a million images of the same four shots, yikes! At five second intervals, that is still 138,240 images over two days. A possible alternative was to add an additional system to compare images, and if they look the same, avoid saving or analyzing images when you can recreate the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fatigue messes with your mind
&lt;/h2&gt;

&lt;p&gt;If you've ever worked late into the night debugging problems, you know it can be both mentally and physically exhausting. And if you're already a little spooked, sometimes this can also cause you to overthink things and incorrectly imagine things happen when they actually don't. Fear can mess with your mind! It was surreal to be down in the bowel of the ship and wonder if I really saw something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disappointment is real
&lt;/h2&gt;

&lt;p&gt;So, the question everyone asks, did you find any ghosts?!? Given the nature of spirits, you can't just summon a spirit on demand (like you might see on an edited television show). While we didn't see any abnormalities in the data, it doesn't conclusively say we did or did not have a spirit among us. This is a good reminder that while we can all have expectations, we can't completely control the environment just because we want something to be.&lt;/p&gt;

</description>
      <category>ibmwatson</category>
      <category>ghosthunting</category>
    </item>
    <item>
      <title>What dream has technology enabled for you?</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 27 Apr 2019 23:19:30 +0000</pubDate>
      <link>https://dev.to/jeancarl/what-dream-has-technology-enabled-for-you-5f7n</link>
      <guid>https://dev.to/jeancarl/what-dream-has-technology-enabled-for-you-5f7n</guid>
      <description>&lt;p&gt;This week I came across a little 16-page book that I wrote when I was inspired by author R.L. Stine back in the 90s. It got me thinking about what enabled me to start writing, and then reminisce on the nearly two decades I've been using technology and what has changed.&lt;/p&gt;

&lt;p&gt;My story began with a collision of several events: buying each book in the Goosebumps series and getting access to the internet and web development on the free hosting site (at the time) GeoCities. It's a long story, but I'll keep it short. I would write two-page short stories, print them out, and imagine releasing the two page stories in a regular cadence  (I think it was weekly) like Stine did. &lt;/p&gt;

&lt;p&gt;I hosted my first website on GeoCities, showcasing a newsletter featuring the latest story and behind-the-scenes. I didn't have much of an audience, my family was already well aware of my writing, being passive supportive recipients of a "free print subscription" printed on a Dot Matrix printer.&lt;/p&gt;

&lt;p&gt;Regardless of the audience or popularity, this process enabled me to find an interest in writing. It enabled me to discover HTML, JavaScript, and Perl. Over the years, CSS, PHP, and Node.js (and many others) entered into my vocabulary. I've moved on from fiction to tutorials and real-life blogs, scattered across the internet on many websites.&lt;/p&gt;

&lt;p&gt;So as the next generation of kids get started using technology, I &lt;a href="https://dev.to/jeancarl/how-to-help-your-child-learn-tocode-j3g"&gt;wonder what they will build&lt;/a&gt; using much more advanced technology available to them from nearly anywhere in the world.&lt;/p&gt;

&lt;p&gt;Looking back at the release of the smartphone and tablet that we know today, it was revolutionary in making technology accessible in the classroom. Every child seems to have some device available to them. Access to technology and the internet isn't such a stumbling block that it used to be.&lt;/p&gt;

&lt;p&gt;In the last decade, there's a new crop of acronyms that have become accessible: AI, AR/VR, ML to name a few. Most of these have a plethora of online courses that can lead a newcomer through the ropes to learning the technology. &lt;a href="http://glitch.com"&gt;Free&lt;/a&gt; or inexpensive hosting (now referred to as the Cloud) make it relatively easy to spin up hardware to make it happen, and tear down when finished. &lt;a href="https://github.com"&gt;Github&lt;/a&gt; makes it easy to find code, to share code, and to collaborate with others. The investment is no longer about money and physical space, but rather time and interest. &lt;/p&gt;

&lt;p&gt;What has technology enabled for you?&lt;/p&gt;

</description>
      <category>technology</category>
    </item>
    <item>
      <title>Test Driven Dev: Four rules of simple design</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 20 Apr 2019 18:27:39 +0000</pubDate>
      <link>https://dev.to/jeancarl/test-driven-dev-four-rules-of-simple-design-41e2</link>
      <guid>https://dev.to/jeancarl/test-driven-dev-four-rules-of-simple-design-41e2</guid>
      <description>&lt;p&gt;As a developer, we are sometimes so excited to build functionality that we forget to write tests to verify that the code works as expected, and to protect against future regressions or changes that break functionality. Have you heard this excuse before: I'll get to the tests after I write this one function and push it to production?&lt;/p&gt;

&lt;p&gt;Test driven development (TDD) strives to enforce testing before writing a single line of code. In other words, you write all production code in response to a test case.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="https://www.ibm.com/cloud/garage/content/course/test-driven-development"&gt;Test Driven Development course&lt;/a&gt; offered by the IBM Cloud Garage, there are four rules of simple design to live by when developing using TDD:&lt;/p&gt;

&lt;h1&gt;
  
  
  Passes the test
&lt;/h1&gt;

&lt;p&gt;This is simple, but does the test pass? This is the canary in the coal mine analogy: if a test fails, something went wrong. If the test passes (and the test has been proven to test appropriately), the expected behavior is still the actual behavior.&lt;/p&gt;

&lt;h1&gt;
  
  
  Reveals intention
&lt;/h1&gt;

&lt;p&gt;Code should be readable and clearly defined. Can someone look at a piece of code and clearly understand what it does without having to read comments or documentation? Use well named variable, method, and class names. &lt;/p&gt;

&lt;h1&gt;
  
  
  No duplication
&lt;/h1&gt;

&lt;p&gt;You may have heard the acronym DRY (Don't Repeat Yourself) before. This rule helps to keep code concise and as the name implies, avoid duplicated concepts. If there is the same code, can you refactor it into a new method? &lt;/p&gt;

&lt;h1&gt;
  
  
  Fewest elements
&lt;/h1&gt;

&lt;p&gt;Step back and look at the bigger picture. Are there unused pieces that aren't used? Remove any unused code. Avoid over engineering or planning for the future. TDD strives to write the minimum amount of functionality to pass the test. &lt;/p&gt;

</description>
      <category>tdd</category>
      <category>testing</category>
    </item>
    <item>
      <title>Going back in time: dealing with the back button and slow connections</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 13 Apr 2019 21:14:25 +0000</pubDate>
      <link>https://dev.to/jeancarl/going-back-in-time-dealing-with-the-back-button-and-slow-connections-52o4</link>
      <guid>https://dev.to/jeancarl/going-back-in-time-dealing-with-the-back-button-and-slow-connections-52o4</guid>
      <description>&lt;p&gt;As more and more content is loaded dynamically via JavaScript, it has become more noticable and can disturb the user experience, even jarring the user's sense of location. &lt;/p&gt;

&lt;p&gt;For example, I was browsing the Twitter timeline and clicked a link that took me away from the timeline. I might have had a lapse in brain activity, but I glimpsed something else on the timeline that got my interest as the browser loaded my first click. I quickly pressed the back button, apparently more invested in what I had seen than where I was going. Alas, the content was no longer there. &lt;/p&gt;

&lt;p&gt;In the screenshot below, the ad is dynamically loaded and changed whenever the page is rendered.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uTZkalDo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cmz1mm9wocmvz4ch5isp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uTZkalDo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cmz1mm9wocmvz4ch5isp.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I looked a little closer and thought about the user experience I had just experienced. The back button on a browser means (or perhaps, used to mean) that I should be able to go back to where I was and presumably continue where I left off. But, this is a flawed expectation for several reasons. First, let's talk about time. Depending on how quickly I click back (now versus say an hour from now), there may be new content that is added to the timeline. The perils of dynamic content. This might shift the content or the position of where I am on the page, bringing the experience out of sync.&lt;/p&gt;

&lt;p&gt;Another experience with the timeline is automatic pagination. This is where you can scroll down the page and new content is automatically appended, creating a never-ending list/stream of content. Great for those who are too lazy to click the next button and wait. However, the back button breaks this experience as well. If you're well on your way back into history (err, down the page of lots of pages of content), how does that page cope with reloading perhaps hundreds of items into the list and magically getting you back to exactly where you left off?&lt;/p&gt;

&lt;p&gt;Oh, my brain hurts thinking about this. I think we've reached the moment the universe collapses into itself.&lt;/p&gt;

&lt;p&gt;The last thing I am disturbed with is that we still haven't instilled in web developers the art of distraction. With 200mbp internet connections at work where they build and test web experiences, web developers think things load so fast that they don't need to build in transitions for slower connections. Transitions are like the spinning wheels that visually show that something is (hopefully) happening, such as the computer is thinking. This was in fact the case back in the day, but today, well, we have fast enough computers so we don't need to worry about that right?&lt;/p&gt;

&lt;p&gt;Wrong. If you visit a location where internet access is spotty, you'll soon realize there's quite a population who doesn't have fast (or even a reliable) internet connection. And you don't have to leave your Silicon Valley bubble. Take a ride on a Caltrain bullet express train and try to use a mobile hotspot. The spotty coverage (surprising Palo Alto has such a problem) will make browsing even the simplest website a frustrating experience. We unfortunately don't have a solid connection to the internet in the United States and web developers should understand that fact.&lt;/p&gt;

&lt;p&gt;Now, I'll admit I'm throwing a lot of blame on something I will admit I've been guilty of as well in the past. Time, effort, and other factors make these small UX issues a low priority for developers. But here are some things that can be done to mitigate the experience.&lt;/p&gt;

&lt;p&gt;First, the spinning wheel. Wait for it. Yep, give the user a visual cue that the process is taking longer than expected, but that something is still being done. &lt;/p&gt;

&lt;p&gt;Add a target="_blank" to links. This will open a new browser window or tab. It's easy for the user to close that tab and return right back to where they came from. No need to load any content or figure out where they are. This is like a zero reengineering effort that it is surprising this trick isn't used more often.&lt;/p&gt;

&lt;p&gt;This last one is going to be tricky, but try to cache content. For example, add a HTTP header for the browser to keep the content longer. Or store it in local storage.&lt;/p&gt;

&lt;p&gt;Avoid jarring the user with experiences that cause them to stop doing what they were doing. Maybe we'll have this solved in another two decades.&lt;/p&gt;

</description>
      <category>userexperience</category>
      <category>design</category>
    </item>
    <item>
      <title>What digital content are you hoarding?</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 06 Apr 2019 18:06:29 +0000</pubDate>
      <link>https://dev.to/jeancarl/what-digital-content-are-you-hoarding-1ji3</link>
      <guid>https://dev.to/jeancarl/what-digital-content-are-you-hoarding-1ji3</guid>
      <description>&lt;p&gt;It's spring time, and as I look in the closets of my home and office, I am reminded of the term "spring cleaning". It's a good reminder to assess what I still need to keep and what I can let go of. Yep, I do have a handful of things from conferences that I've kept around (anyone want a fidget spinner or USB thumb drive?)...and making that hard decision to donate them. Do I really need to have all those conference lanyards, USB squids, random IoT boards, etc? &lt;/p&gt;

&lt;p&gt;That's the physical clutter in my life. &lt;/p&gt;

&lt;p&gt;What about the digital stuff? Given the era of infinite cloud storage and ginormous hard drives...I've collected quite a bit of digital debt as well. I've got terabytes of harddrives with photos, tons of development projects, and tons of backups of websites that are not even online. &lt;/p&gt;

&lt;p&gt;Digital debt is was easier to hide. Just create a folder and you quickly realize you don't know what's really taking up 400gb. &lt;/p&gt;

&lt;p&gt;So I starting taking a look at the places I've stashed content and whether I really need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Github
&lt;/h2&gt;

&lt;p&gt;Github is a great place to store projects, and now with free private repos, those private projects. Probably ideally a good place for more active projects given its main purpose. What projects have you left alone for longer than a year? Are they still relevant? Does anyone else use them? Does it really make sense to keep old projects around aside from the prestige (and a portfolio) of what you've done in your past?&lt;/p&gt;

&lt;h2&gt;
  
  
  Local Projects
&lt;/h2&gt;

&lt;p&gt;I have a folder called projects on my laptop where I keep pet projects that I started to test out a theory or figure out quickly how something worked. I still hold out on some of the projects that I will pick them up again in the future. As time goes along, it's looking less and less likely. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Storage
&lt;/h2&gt;

&lt;p&gt;Online storage like Google Drive and Box are great collaboration tools to share files online. And with either unlimited storage or lots of storage space being offered, it's a great place to backup all your local files. Smartphones can backup all your selfies to the Cloud, making space on your phone for even more. It seems like a never ending generation of data. And since you rarely run out of space, the urgency to clean up and maintain order isn't a strong motivator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Harddrives
&lt;/h2&gt;

&lt;p&gt;Before I adopted using Cloud Storage, I amassed number multi-terabyte external drives of pictures and videos. Many of the drives have sat there cold and unplugged on the shelf. The storage isn't as easily accessible (they need to be plugged in) and are rarely used. It's the mental connection that I hold onto and know I can revisit them at anytime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it's okay to let it go
&lt;/h2&gt;

&lt;p&gt;So the question you should ask is, if you're not actively using it, do you really need to keep it? There are many reasons, from emotional connections, to futuristic hopes of using it again, to a sense of historical importance to you or maybe someone else, like your child (keeping all those photos and videos for a baby to see when she's a teenager, more than a decade from now). &lt;/p&gt;

&lt;p&gt;Can you somehow recreate or purchase it again if you ever find yourself needing it again? It's okay...go ahead and donate it. You enjoyed it while you've had it...and someone else will actively use it. It's okay...delete all those extra photos of the same thing...you just need one, maybe two. &lt;/p&gt;

&lt;h1&gt;
  
  
  What do you hoard?
&lt;/h1&gt;

&lt;p&gt;I'm curious at what digital content you hoard and want to get rid of. What are your techniques to spring clean? &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Do your tech demos share too much?</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 30 Mar 2019 17:40:08 +0000</pubDate>
      <link>https://dev.to/jeancarl/do-your-tech-demos-share-too-much-124h</link>
      <guid>https://dev.to/jeancarl/do-your-tech-demos-share-too-much-124h</guid>
      <description>&lt;p&gt;Today, our personal privacy is being challenged in so many ways. From having your personal information like your home address, phone number, friendships, and secrets being exposed…there are a lot of little personal details someone can find. And let's not talk about social media and location sharing. &lt;/p&gt;

&lt;p&gt;Do you share too much professionally? &lt;/p&gt;

&lt;p&gt;I occasionally post tutorials with either screenshots or videos showing how to do things. I have also done hundreds of live demos at meetups and conferences in front of folks who may innocently take photos of things I show. And then there's the informal screenshares with people on a Slack call showing them something on my computer. For the most part, there is no malicious intent...but given enough pieces...someone could use these to cause harm.&lt;/p&gt;

&lt;p&gt;Does your screen show too much information? From API Keys, to account numbers, to lists of followers, here are some things I've discovered are visible when I don’t intend to have them be. &lt;/p&gt;

&lt;p&gt;Note: while writing this post, I thought including screenshots would complete the picture...but as I proceeded to screenshot these examples, I realized I would be sharing this same exact information that I don't want to share with the internet. I even tried to blur those parts, but some examples had nearly the whole screen blurred. Sorry, we're gonna have to do this text based. I encourage you to open the websites and see for yourself.&lt;/p&gt;

&lt;h1&gt;
  
  
  Browser history
&lt;/h1&gt;

&lt;p&gt;The browser history is ideally meant to help you refer back to a online resource you’ve been to. The search bar searches your history as you type. If I wanted to open dev.to, you can see some other sites I've been to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8vtg1nub6in2fth5rp9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F8vtg1nub6in2fth5rp9f.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can clear your browsing history&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fr1dk4f61j7p9tarjkmq8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fr1dk4f61j7p9tarjkmq8.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tabs
&lt;/h1&gt;

&lt;p&gt;Tabs are like the best invention for the multitasker. Open a page in a tab and you can come back to it. What do your open tabs share about you? Are you a Gmail user? If you have fewer tabs than this, what do the page titles share?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn7egmkmk55ulbhkf1he9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn7egmkmk55ulbhkf1he9.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep only the primary tabs you are actively using open. Open a new web browser window and start anew.&lt;/p&gt;

&lt;h1&gt;
  
  
  Email
&lt;/h1&gt;

&lt;p&gt;How many times have you seen someone presenting accidentally open up their email inbox and display names of people they correspond with, with subjects and email previews that might share a little too much? Close the tab and come back to email later.&lt;/p&gt;

&lt;h1&gt;
  
  
  Github
&lt;/h1&gt;

&lt;p&gt;Oh yeah, I have some code that would be great to show you. Type in &lt;a href="https://github.com" rel="noopener noreferrer"&gt;github.com&lt;/a&gt; and press enter. The Github dashboard, and even the list of your Github repos display private repos. What if your stealth project you’re working on is listed right there?&lt;/p&gt;

&lt;h1&gt;
  
  
  Bookmarks
&lt;/h1&gt;

&lt;p&gt;The bookmark toolbar is also another handy tool to getting to common destinations quickly. But are these bookmarks sharing internal resources like Project X roadmap? Add non-descriptive folders and place sensitive bookmarks in the folders.&lt;/p&gt;

&lt;h1&gt;
  
  
  API keys
&lt;/h1&gt;

&lt;p&gt;If you create cloud resources or work with API keys, you’re eventually going to need to copy API keys or certificates. Before I screenshot credential pages, I go into the Developer tools and inspect the element. I modify the API key by completely randomizing it. Then I screenshot it. It looks real, but if you try the key…it doesn't work. The other trick is to rotate or invalidate the key immediately afterwards you've exposed them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2n4pwlmlfzxsmo3939uf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F2n4pwlmlfzxsmo3939uf.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Websites
&lt;/h1&gt;

&lt;p&gt;Websites like Google Maps and Amazon display information about your whereabouts. Open up &lt;a href="https://maps.google.com" rel="noopener noreferrer"&gt;maps.google.com&lt;/a&gt; and it centers the map to where your computer is located. Amazon shares your zip code and products you’ve previously viewed.&lt;/p&gt;

&lt;h1&gt;
  
  
  Files
&lt;/h1&gt;

&lt;p&gt;If you save or open files on your computer, beware of what things you’re displaying. To open a downloaded file might mean showing your downloads list, exposing what you’ve downloaded in the past. If you upload files, are you exposing files or folders of secret projects you’re working on. On a Mac, you can click Hide to collapse the lists in the left sidebar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwoarhqe4witeokfhsinq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwoarhqe4witeokfhsinq.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Notifications
&lt;/h1&gt;

&lt;p&gt;How many times have you been watching someone present and see a notification pop up. For example a Slack, email, text message, or calendar reminder? If you screenshare a mobile phone, you might even share an incoming phone call from a new number. On a Mac, you can Option + click the Notification icon in the top right corner. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F85s69csljopwlqw785y6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F85s69csljopwlqw785y6.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paranoid yet? Pull out your tinfoil hats now and gather around. I'm curious at what you've seen, or worse, exposed. Share in the comments...I'm ready for the good stuff!&lt;/p&gt;

</description>
      <category>security</category>
      <category>devrel</category>
    </item>
    <item>
      <title>Don't be afraid to share your projects</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 26 Jan 2019 04:08:53 +0000</pubDate>
      <link>https://dev.to/jeancarl/dont-be-afraid-to-share-your-projects-15ke</link>
      <guid>https://dev.to/jeancarl/dont-be-afraid-to-share-your-projects-15ke</guid>
      <description>&lt;p&gt;As a developer, we love to create things. There is a satisfaction in discovering how things are constructed first hand, even if we reinvent the wheel and what we build is inefficient, verbose, or, in a way we wouldn't show even our closest friend the source code.&lt;/p&gt;

&lt;p&gt;And this is where an internal conflict comes into play. Many developers want to show off their new creations, sharing them with anyone and everyone. It's like the days in elementary school when you were selected to show and tell something really cool of yours to your fellow classmates. That short moment in the spotlight to be popular, to have others know something about you!&lt;/p&gt;

&lt;p&gt;So why don't more developers push their projects to Github, to blog their journey of what they built, learned, and want to tell others, and video themselves and their creation for immortality?&lt;/p&gt;

&lt;p&gt;Because we're afraid. Fear, a very common emotion, and social anxiety cause a conflict for many, preventing them from taking that extra step. What if my project is stolen and someone else gets the spotlight instead of me? What if someone judges me and tells me how terrible I am at coding? My cover will be blown and I won't be that elite coder I want everyone to see me as.  What if I built the project completely wrong, I won't be able to take it back and hide under the blanket?&lt;/p&gt;

&lt;p&gt;In this social media-hyper focused world we live in today, these are all valid concerns and could perhaps lead to a lost of position in social ranking. But this doesn't have to be high-school clique all over again. These fears really shouldn't be limitations that prevent us from sharing our projects. The worst thing that can happen is that no one else will notice the project as it collects dust. Oh well, you would have been the only one to see it in the first place. Posting it on the internet at least makes it discoverable.&lt;/p&gt;

&lt;p&gt;Being selfish for a moment, I want to share a couple of benefits I found for sharing my projects and not being concerned about the social promotion everyone else seems so concerned over.&lt;/p&gt;

&lt;p&gt;I used to compete in hackathons regularly and would &lt;a href="http://30daysoftravel.com/2014/01/23/secondgov-at-collectives-hackdance-hackathon/" rel="noopener noreferrer"&gt;post about my project afterwards&lt;/a&gt;. It was a haphazard effort and really varied on what I felt was most important to showcase the project. Each blog post was different, sometimes including screenshots, demo videos, lessons learned, explanations on user experience or the problem, and what future improvements I thought could be made.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjcajv4bhzjlw9svhikmn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjcajv4bhzjlw9svhikmn.jpg" alt="Alex the Emotion tracking Teddy Bear"&gt;&lt;/a&gt; &lt;/p&gt;
Alex the Emotion tracking Teddy Bear



&lt;p&gt;These blog posts are spread across a number of my blogs I've left for that next blogging platform. But the content still remains. It gives me a perspective of where I was at &lt;a href="http://jeancarlbisson.com/2015/11/20/connected-teddy-bear/" rel="noopener noreferrer"&gt;just a couple of years ago&lt;/a&gt; and how I've advanced both personally and professionally.&lt;/p&gt;

&lt;p&gt;A couple of weeks ago I came across my &lt;a href="http://jeancarlbisson.com/15-projects-in-30-days/" rel="noopener noreferrer"&gt;15 projects in 30 days project&lt;/a&gt; I did in the summer of 2015 as an exercise to learn Angular. I clicked through the projects to see how outdated the code was and wondered for a moment why would anyone read it nearly four years later. Should I retire these projects as I clean up for my new year resolution. Again, being self-centered, I was awed by the effort I put into these projects and the creativeness I "had" back then. &lt;/p&gt;

&lt;p&gt;While the &lt;a href="https://medium.com/@jeancarlbisson" rel="noopener noreferrer"&gt;tutorials&lt;/a&gt; I've written are out of date and the frameworks vastly improved, there's a historical value for me in keeping them. In a sense I'm leaving a time capsule of what I've done for my future self, and others are welcome to come watch the journey if they choose. &lt;/p&gt;

&lt;p&gt;And yes, I do regret not having written about all my projects. I sometimes recall a few details here and there about a project that was and am unable to locate even bits of source code. If I could go back in time, I would have written about more of my projects so I could go back and watch the video (and even share it) today. &lt;/p&gt;

</description>
      <category>documenting</category>
      <category>devjournal</category>
      <category>projects</category>
    </item>
    <item>
      <title>A review of semantic versioning using npm version</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 19 Jan 2019 04:21:30 +0000</pubDate>
      <link>https://dev.to/jeancarl/a-review-of-semantic-versioning-using-npm-version-2d2m</link>
      <guid>https://dev.to/jeancarl/a-review-of-semantic-versioning-using-npm-version-2d2m</guid>
      <description>&lt;p&gt;This past week I was watching a Twitch stream and happened to see the developer using the &lt;code&gt;npm version&lt;/code&gt; command. I haven't come across this command before, but after looking at it...will be using it from now on. Since I was already playing with it, I thought I would recap it here for others to learn (through a theoretical story), and of course my future self to refer back to.&lt;/p&gt;

&lt;p&gt;Here's a little primer on semantic versioning before we dive into using the command from the &lt;a href="https://docs.npmjs.com/about-semantic-versioning" rel="noopener noreferrer"&gt;npm docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fa0309rymjmiseewarjfx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fa0309rymjmiseewarjfx.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Git repo setup
&lt;/h1&gt;

&lt;p&gt;I created a private repo on GitHub and cloned it locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git clone https://github.com/jeancarl/greeting.git
Cloning into 'greeting'...
warning: You appear to have cloned an empty repository.
$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Greeting Package
&lt;/h1&gt;

&lt;p&gt;Keeping it simple, I created this module to construct a greeting and output it to the console:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// index.js

class Greeting {
    constructor() {
        console.log('Greeting constructor called');
    }

    hello() {
        return 'hello world';
    }
}

module.exports = Greeting;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's my test application that used the new module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// test.js

const Greeting = require('.');

const greeting = new Greeting();
console.log(greeting.hello());             // outputs hello world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  npm init
&lt;/h1&gt;

&lt;p&gt;I needed to create a package.json file. I called the &lt;code&gt;npm init&lt;/code&gt; utility to run through a wizard to collect the necessary info:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install &amp;lt;pkg&amp;gt;` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (greeting)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository: (https://github.com/jeancarl/greeting.git)
keywords:
license: (ISC)
About to write to /greeting/package.json:

{
  "name": "greeting",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" &amp;amp;&amp;amp; exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/jeancarl/greeting.git"
  },
  "author": "JeanCarl Bisson &amp;lt;---&amp;gt; (http://jeancarlbisson.com)",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/jeancarl/greeting/issues"
  },
  "homepage": "https://github.com/jeancarl/greeting#readme"
}


Is this OK? (yes)
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  A Quick Test
&lt;/h1&gt;

&lt;p&gt;I ran &lt;code&gt;node test.js&lt;/code&gt; to check that everything was working:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node test.js
Greeting constructor called
hello world
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I committed these files to the git repo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git add index.js package.json test.js
$ git commit -m "init"
[master (root-commit) 9e14a36] init
 3 files changed, 38 insertions(+)
 create mode 100644 index.js
 create mode 100644 package.json
 create mode 100644 test.js
$ git push
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 762 bytes | 762.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/jeancarl/greeting.git
 * [new branch]      master -&amp;gt; master
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I could have &lt;code&gt;npm publish&lt;/code&gt; and been excited about this really cool module, but this was just an example and there would need to be more documentation on how to use it.&lt;/p&gt;

&lt;h1&gt;
  
  
  A Bug!
&lt;/h1&gt;

&lt;p&gt;In my haste to release this module, I had (theoretically) left a small bug that wrote to the console when a Greeting object was created (perhaps a common artifact from debugging what code was executed). Yes, better testing would have prevented this silly bug in the first place...but then I wouldn't have had such an easy bug to fix! I removed the line in the constructor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// index.js

class Greeting {
    constructor() {

    }

    hello() {
        return 'hello world';
    }
}

module.exports = Greeting;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Testing it again, it all looked good:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node test.js
hello world
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I committed this change:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git add index.js
$ git commit -m "Removed console log in Greeting constructor"
[master 17ea869] Removed console log in Greeting constructor
 1 file changed, 1 insertion(+), 1 deletion(-)
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I now needed to update the npm version. I could have gone into the package.json file and manually updated the version. Instead, I used the &lt;code&gt;npm version patch&lt;/code&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm version patch
v1.0.1
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command accomplished two things. It bumped the patch version in the package.json file, and staged a second commit with the version number as the commit message. I pushed these two changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git push
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 668 bytes | 668.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/jeancarl/greeting.git
   9e14a36..4de7b41  master -&amp;gt; master
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here are the two commits:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fgp40gn5oy9hvhriiwofg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fgp40gn5oy9hvhriiwofg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  A minor new feature!
&lt;/h1&gt;

&lt;p&gt;As my module got popular, someone (theoretically) suggested that we should say hello to a specific name, not just the world. &lt;/p&gt;

&lt;p&gt;I modified the hello method with an optional parameter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// index.js

class Greeting {
    constructor() {

    }

    hello(name = 'world') {
        return 'hello '+name;
    }
}

module.exports = Greeting;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I added another example, passing in my name to the modified method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// test.js

const Greeting = require('.');

const greeting = new Greeting();
console.log(greeting.hello());             // outputs hello world
console.log(greeting.hello('JeanCarl'));   // outputs hello JeanCarl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Testing it again, it all looked good:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node test.js
hello world
hello JeanCarl
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I committed these changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git add index.js test.js
$ git commit -m "Added ability to say hello to a custom name"
[master 6505ba6] Added ability to say hello to a custom name
 2 files changed, 5 insertions(+), 4 deletions(-)
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since this was a new feature and was backwards compatible, I bumped the minor version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm version minor
v1.1.0
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I pushed these two changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git push
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 827 bytes | 827.00 KiB/s, done.
Total 7 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/jeancarl/greeting.git
   4de7b41..59fe128  master -&amp;gt; master
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here are the two commits:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fshm1c70cgi4trgx1w4v5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fshm1c70cgi4trgx1w4v5.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  A Major Change
&lt;/h1&gt;

&lt;p&gt;As time goes on this module may grow and change. While the hope is to avoid breaking applications that use this module, technology changes and there might be something that won't be backwards compatible. This is a good time to update the major version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm version major
v2.0.0
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And push the change:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git push
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 337 bytes | 337.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/jeancarl/greeting.git
   59fe128..a74eaf3  master -&amp;gt; master
$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Versioning your software isn't the most exciting thing, but having this command in your toolbox can help. What other exciting commands do you use?&lt;/p&gt;

</description>
      <category>npm</category>
      <category>programming</category>
      <category>versions</category>
    </item>
    <item>
      <title>How to help your child learn to code</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 12 Jan 2019 01:11:57 +0000</pubDate>
      <link>https://dev.to/jeancarl/how-to-help-your-child-learn-tocode-j3g</link>
      <guid>https://dev.to/jeancarl/how-to-help-your-child-learn-tocode-j3g</guid>
      <description>&lt;p&gt;I've been seeing more and more teenagers get into coding and attend hackathons. It's exciting to see that technology not only powers the communication between teenagers, but that the teenagers are understanding that they too can build those applications and solutions themselves.&lt;/p&gt;

&lt;p&gt;I remember learning to code HTML and the early (and very limited) JavaScript on a dial-up connection and uploading to GeoCities as a teenager. Anyone remember FrontPage Express? Shoot, I've just dated myself. I promise my handwritten HTML today no longer contain verbose tags.&lt;/p&gt;

&lt;p&gt;Today, technology has certainly advanced to make this easier for anyone to start doing. From online courses that teach you everything from &lt;a href="https://www.ibm.com/design/"&gt;Design Thinking&lt;/a&gt; to &lt;a href="https://www.ibm.com/blockchain/"&gt;Blockchain&lt;/a&gt; to &lt;a href="https://www.ibm.com/cloud/container-service"&gt;Docker and Kubernetes&lt;/a&gt;, education is available at your fingertips, and much of it is free and self-paced.&lt;/p&gt;

&lt;p&gt;And with so many online services offering APIs to services we use, there are endless combinations to put together. Once you get to coding and come across an API reference, you can often find Swagger docs that contain enough code snippets to copy and paste together.&lt;/p&gt;

&lt;p&gt;Code snippets are all over the place. When you find a framework or project that piques your interest, browsing &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt; can unearth a ton of projects and ways it can be used. What if this could also…is a great prompt to ask and complete.&lt;/p&gt;

&lt;p&gt;Finally, when you venture off on your own to code a solution and stumble upon an error, &lt;a href="https://stackoverflow.com"&gt;StackOverflow&lt;/a&gt; can be a helpful place to find the question and answers to what sometimes mystic and confusing error messages actually mean. It seems like every question you might have is already answered.&lt;/p&gt;

&lt;p&gt;Occasionally I get asked by parents who want to encourage their children to start coding, even though they themselves are not in the programming profession. It is interesting to watch these parents have the motivation to encourage their children juxtaposed with very little knowledge on how to actually do it.&lt;/p&gt;

&lt;p&gt;I believe there are several things that a parent can do to help their child find a passion and interest in programming. First, accessibility. I learned how to code by getting access to a salvaged computer and dial-up. Today, iPads, the Cloud, and simply a web browser can be the tools to enable the access to not only using technology but customizing it to do what you want.&lt;/p&gt;

&lt;p&gt;Just like a parent encourages a child to ask questions about the world around them and seek answers, use this technique in programming. Have you heard the saying, answering a question with a question? It's frustrating not getting the immediate gratification of an answer, but if you teach the child "how to fish," the skills will be learned to solve on their own.&lt;/p&gt;

&lt;p&gt;Lastly, sitting down with the child and learning yourself can be helpful. Even if you don't have first-hand experience with the technology, you have life experience. Building things with technology isn't just about getting a computer to perform a set of instructions. There's much more to it.&lt;/p&gt;

&lt;p&gt;With user interfaces, how do we design tools that are intuitive, easy to use, and efficient? What types of problems really matter? Are there existing solutions already doing the same thing? How can you make it more unique and differentiate yourself from competitors.&lt;/p&gt;

&lt;p&gt;In pair programming, two developers work together to write code, bouncing ideas and functionality off of one another. Using the same technique, children can bounce ideas off parents and receive helpful feedback in a different context and mindset then they have.&lt;/p&gt;

&lt;p&gt;I sometimes joke that the last step is to give your child your credit card and a spending limit. For example, when building an Internet of Things solution, a $35 Raspberry Pi can be a tremendous enabler at a very reasonable price. There are a number of sensors that are also reasonably priced to enable more complex solutions. And it's probably better than buying all that candy that causes cavities. Though, there are quite a few sensors that your bank account will quickly regret this newfound interest.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>children</category>
    </item>
    <item>
      <title>Living a digital life in a physical world</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Sat, 05 Jan 2019 05:24:12 +0000</pubDate>
      <link>https://dev.to/jeancarl/living-a-digital-life-in-a-physical-world-21ia</link>
      <guid>https://dev.to/jeancarl/living-a-digital-life-in-a-physical-world-21ia</guid>
      <description>

&lt;p&gt;It's been a decade since smartphones became a part of many people's daily lifestyle. As technology has advanced, at what seems to be exponential speed, smartphones now include multiple cameras with an ever increasing sensor quality, augmented reality apps and games, and a multitude of methods to communicate with each other. Many apps available have led to the endless customization of photos, and social networks have proliferated this multimedia across the globe in a matter of hundreds of milliseconds, to people who may or may not know the creator personally.&lt;/p&gt;

&lt;p&gt;Smartphones are not the first to enable this sharing. Digital cameras offered a slower way of sharing. One would spend the day taking photos, return home and download them to a desktop computer, review and then upload to a social media site like MySpace or your personal GeoCities website (ah, the good memories). It wasn't immediate or as accessible as it is today.&lt;/p&gt;

&lt;p&gt;Walking down the street this week on New Year's eve in San Francisco, reflecting on my year as the clock ticked closer and closer to midnight, I began thinking about how technology has played part in it. While everyone was waiting for the fireworks show over the Ferry Building on the Embarcadero, I observed how technology has infiltrated our physical lives and seemingly transported us into a digital universe that somehow parallels each other in a strange paradox.&lt;/p&gt;

&lt;p&gt;So, I came up with a list of five things this technology has enabled, that I observed just standing in the middle of the street, wondering to myself what the future holds for 2019 and beyond.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sxCFt8k_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ptjat0yqc8srphpvoz5m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sxCFt8k_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ptjat0yqc8srphpvoz5m.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Texting
&lt;/h1&gt;

&lt;p&gt;Texting isn't new by any means. However, it feels like more and more people are texting as they walk down the street, clueless to their surroundings. The immediacy of the text message leads to a sense of urgency, so it's no surprise people feel a need to respond immediately instead of when they get to their destination and have a moment to respond.&lt;/p&gt;

&lt;p&gt;Ah, don't forget those emojis! Emojis are the quick way to convey responses without having to arduously type out that message. ;-) And with more than 2800 emojis now available, you're no longer limited to that yellow smiley face that is so twentieth century.&lt;/p&gt;

&lt;h1&gt;
  
  
  Streaming
&lt;/h1&gt;

&lt;p&gt;As midnight approached, people livestreamed video of what they saw over the internet to others not physically with them. Live streaming brings friends and family with you and can share in the moment when they would otherwise not be able to. &lt;/p&gt;

&lt;p&gt;Have you ever observed someone live streaming? It's common to see the streamer with their smartphone pointing aimlessly and chatting, no longer present in the physical world. Woe the viewer on the other end if they suffer from motion sickness.&lt;/p&gt;

&lt;p&gt;Remember back when people used to use bluetooth headsets and you couldn't figure out if they were talking to you?&lt;/p&gt;

&lt;h1&gt;
  
  
  Photography
&lt;/h1&gt;

&lt;p&gt;When the clock struck midnight, fireworks welcomed in the new year. Of course, people pulled out their smartphones to capture pictures and videos of them and the fireworks to share on social media.&lt;/p&gt;

&lt;p&gt;Not surprisingly, many stared into the bright screens on their smartphones instead of enjoying the moment in person. They were really nice fireworks, by the way! And what did they do with their cars? Stopped them in the middle of the Embarcadero. Apparently traffic laws are paused when time warps into a new year?&lt;/p&gt;

&lt;p&gt;And for those courteous passersby, it's a challenge not to walk right in front of someone taking a group photo from ten feet away, temporarily completely blocking sidewalks in the process. Again, courtesy seems to be a one-sided thing in this universe.&lt;/p&gt;

&lt;h1&gt;
  
  
  Videos
&lt;/h1&gt;

&lt;p&gt;On the train back home, a passenger was using a smartphone to watch videos they had captured from the fireworks show, preparing their posts to social media. It isn't uncommon to hear someone playing videos or music without headphones these days, oblivious to being a disturbance to others. &lt;/p&gt;

&lt;p&gt;It's okay, I'll put in my headphones so I won't disturb you! Sorry about that!&lt;/p&gt;

&lt;h1&gt;
  
  
  Driving and navigating
&lt;/h1&gt;

&lt;p&gt;GPS and maps have become so commonplace in smartphones, especially in ride-sharing apps, that we literally lose track of where we are. Drivers are so distracted with what's on the screen, they don't pay attention to what's outside of the car. &lt;/p&gt;

&lt;p&gt;As a pedestrian, it's at least several times a day, if not more often, that a car will not legally yield right of way in the crosswalk. You guessed it, there's often a bright screen illuminating the driver's face as they navigate pass me. &lt;/p&gt;

&lt;p&gt;It used to be that a stop sign in California was nothing more than a suggestion that a driver should consider something crossing their path. &lt;/p&gt;

&lt;h1&gt;
  
  
  What have you seen?
&lt;/h1&gt;

&lt;p&gt;There are plenty more things that I could list, but it's time to sign off technology for now and go read a book, like the good old days. I'm interested in what you've seen of this new universe and how it is living life among digital avatars in a physical world.&lt;/p&gt;


</description>
      <category>technology</category>
      <category>socialresponsibility</category>
    </item>
    <item>
      <title>Can I save a single article to My Reading List?</title>
      <dc:creator>JeanCarl</dc:creator>
      <pubDate>Wed, 02 Jan 2019 22:20:39 +0000</pubDate>
      <link>https://dev.to/jeancarl/can-i-save-a-single-article-to-my-reading-list-4epg</link>
      <guid>https://dev.to/jeancarl/can-i-save-a-single-article-to-my-reading-list-4epg</guid>
      <description>&lt;p&gt;Is there a way to save an article to My Reading List when viewing the article? Seems the Save button only shows up on list pages.&lt;/p&gt;

</description>
      <category>help</category>
    </item>
  </channel>
</rss>
