{"id":1718,"date":"2014-05-24T00:08:53","date_gmt":"2014-05-24T05:08:53","guid":{"rendered":"http:\/\/thepizzy.net\/blog\/?p=1718"},"modified":"2014-05-24T00:08:53","modified_gmt":"2014-05-24T05:08:53","slug":"pizzylabs-stormspotter-activation-forecasts","status":"publish","type":"post","link":"https:\/\/thepizzy.net\/blog\/2014\/05\/pizzylabs-stormspotter-activation-forecasts\/","title":{"rendered":"PizzyLabs: StormSpotter Activation Forecasts"},"content":{"rendered":"<p>Three years ago, I started work on a PizzyLabs project for sending real-time weather bulletins over Twitter&#8217;s Direct Message feature for users based on their desired locations. That was the basis for the @NOAAalerts twitter account.<\/p>\n<p>Many things happened shortly after I got started with it; I figured out it wasn&#8217;t feasible to check every NOAA RSS feed every minute for instant updates, I didn&#8217;t have as much of an understanding of User Interface components as I thought I did, the functionality of\u00c2\u00a0the CRON jobs that would be required was very difficult to implement, and then my most dreaded personal issue: I solved all the problems in my head, and it took away all the fun of actually doing the work (aside from the unfeasible parts).<\/p>\n<figure id=\"attachment_1719\" aria-describedby=\"caption-attachment-1719\" style=\"width: 150px\" class=\"wp-caption alignright\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1719\" data-permalink=\"https:\/\/thepizzy.net\/blog\/2014\/05\/pizzylabs-stormspotter-activation-forecasts\/skywarn_650-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?fit=650%2C650&amp;ssl=1\" data-orig-size=\"650,650\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"skywarn_650\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;My re-imagined SKYWARN logo&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?fit=300%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?fit=580%2C580&amp;ssl=1\" class=\"size-thumbnail wp-image-1719\" src=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650-150x150.png?resize=150%2C150\" alt=\"My re-imagined SKYWARN logo\" width=\"150\" height=\"150\" srcset=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?resize=56%2C56&amp;ssl=1 56w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?resize=50%2C50&amp;ssl=1 50w, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?w=650&amp;ssl=1 650w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><figcaption id=\"caption-attachment-1719\" class=\"wp-caption-text\">My re-imagined SKYWARN logo<\/figcaption><\/figure>\n<p>Here we are in 2014 though. I&#8217;ve had a job developing user interfaces for the past 3 years, and the things I create at work are celebrated by all the important people above my position, and our customers. I&#8217;ve also taken the SKYWARN StormSpotter training for 2 years running. And I had another idea that&#8217;s much more feasible:<\/p>\n<p>StormSpotter Activation Forecasts<\/p>\n<p>The one thing that bothers me the most about being a StormSpotter is the fact that I never actually know when the NWS will activate us. I have to manually check the Hazardous Weather Outlook for the day and see what the forecast is for activation.<\/p>\n<p>So why not write a script to do that for me? I looked all over the internet for an API to call so that I didn&#8217;t have to scrape their pages, but I couldn&#8217;t find anything. I did find a lot of other cool stuff though that I would like to integrate into other ideas.<\/p>\n<p>Well, it&#8217;s only been a week, but so far I&#8217;ve gotten a rudimentary UI in place, with Twitter Sign In, and NWS Office city\/state selection. I have a script that can read the HWO and parse it for counties affected and Spotter Activation Statements. And I have the Twitter Application code set up to send the appropriate DMs to users once their settings are chosen.<\/p>\n<p>Things were much easier this time around than last, and the one thing that has been the strangest is I haven&#8217;t given up on the project just because I understand how to do all the aspects of it. It&#8217;s definitely a challenge to get back into MYSQL after spending 3 years working with MongoDB, and it&#8217;s also a challenge to write my own PDO class for handling the queries and a template class for managing the UI (I haven&#8217;t done anything with Frameworks before, so that was off the table for now).<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1721\" data-permalink=\"https:\/\/thepizzy.net\/blog\/2014\/05\/pizzylabs-stormspotter-activation-forecasts\/octocat\/\" data-orig-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/Octocat.jpg?fit=800%2C665&amp;ssl=1\" data-orig-size=\"800,665\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Octocat\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/Octocat.jpg?fit=300%2C249&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/Octocat.jpg?fit=580%2C482&amp;ssl=1\" class=\"alignleft size-thumbnail wp-image-1721\" src=\"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/Octocat-150x124.jpg?resize=150%2C124\" alt=\"Octocat\" width=\"150\" height=\"124\" \/>I have made the <a href=\"https:\/\/github.com\/neotsn\/spotter_status\" target=\"_blank\">code open source<\/a> over on Github, since there really isn&#8217;t any reason not to&#8230;I&#8217;m still new to the Open Source code thing, so I&#8217;m probably using Github wrong, or not sourcing the right information. Leave a comment below, or over there if I&#8217;m missing something, and I&#8217;ll get it fixed.<\/p>\n<p>I&#8217;m not ready to announce the service yet, since the CRON jobs aren&#8217;t in place yet to send the forecasts. However, the work in progress is\u00c2\u00a0accessible from the PizzyLabs page if you&#8217;re interested in giving what *is* there a try. I&#8217;ll have a full write-up once it&#8217;s released.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A little update about a SKYWARN-related project I&#8217;ve been working on this week.<\/p>\n","protected":false},"author":1,"featured_media":1719,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[885,25,3,18,544],"tags":[214,207,229,152,954,121,209,918,919,169,144],"class_list":["post-1718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-labs","category-programming","category-tech","category-thepizzy-net","category-twitter-projects","tag-code","tag-database","tag-mysql","tag-php","tag-programming","tag-server","tag-site","tag-skywarn","tag-stormspotter","tag-technology","tag-twitter"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/skywarn_650.png?fit=650%2C650&ssl=1","jetpack_likes_enabled":false,"jetpack_shortlink":"https:\/\/wp.me\/prOO4-rI","jetpack-related-posts":[{"id":100,"url":"https:\/\/thepizzy.net\/blog\/2008\/01\/twitter-tsn7\/","url_meta":{"origin":1718,"position":0},"title":"twitter &#038; tsn.7","author":"[[Neo]]","date":"January 30, 2008","format":false,"excerpt":"With a new My Spot page comes new possibilities. This time around, I'm going to make a concerted effort to actually write in new code and attach a new database backend that pulls from the phpbb database and the users' accounts on the-spot.net.With this new plan, there will be increased\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/thepizzy.net\/blog\/category\/tech\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2008\/04\/Untitled-2.png?fit=400%2C400&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":184,"url":"https:\/\/thepizzy.net\/blog\/2009\/01\/integrating-google-connect\/","url_meta":{"origin":1718,"position":1},"title":"Integrating Google Connect","author":"[[Neo]]","date":"January 25, 2009","format":false,"excerpt":"I've been part of the Google Connect beta since shortly after it came out - but it wasn't until recently that I actually implemented it on my blog and the parent site, www.thepizzy.net. So, if you read this (and I know there has to be at least 4 other people\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/thepizzy.net\/blog\/category\/tech\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.google.com\/images\/logos\/ps_logo2.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":356,"url":"https:\/\/thepizzy.net\/blog\/2009\/04\/tweetsuite-tweetbacks-and-pingfm-wordpress-plugin-update\/","url_meta":{"origin":1718,"position":2},"title":"TweetSuite, TweetBacks, and Ping.fm WordPress plugin (Update)","author":"[[Neo]]","date":"April 1, 2009","format":false,"excerpt":"Well, I sent off my plugin code to Dan Zarrella, and got the Ping.fm developers API Key approved, and got Wordpress.org to approve the plugin, and have been running it on my blog since its original announcement - but have run into a possible issue... My webhost says it is\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/thepizzy.net\/blog\/category\/tech\/programming\/"},"img":{"alt_text":"twitter.com\/neotsn","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2010\/08\/twitter-wordpress-neo12.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1518,"url":"https:\/\/thepizzy.net\/blog\/2014\/03\/tsn8-in-the-works\/","url_meta":{"origin":1718,"position":3},"title":"tsn8 in the works","author":"[[Neo]]","date":"March 18, 2014","format":false,"excerpt":"Development of tsn8 has begun, with better technology, a new user experience, social media integration, and a planned release of Summer 2014!","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/thepizzy.net\/blog\/category\/tech\/programming\/"},"img":{"alt_text":"tsn logo","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/03\/tsnlogo-featured.png?fit=690%2C405&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/03\/tsnlogo-featured.png?fit=690%2C405&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/03\/tsnlogo-featured.png?fit=690%2C405&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":2070,"url":"https:\/\/thepizzy.net\/blog\/2015\/07\/skywarn-storm-spotter-status-v2\/","url_meta":{"origin":1718,"position":4},"title":"SKYWARN &#8211; Storm Spotter Status &#8211; v2","author":"[[Neo]]","date":"July 5, 2015","format":false,"excerpt":"In a section of this site called the \"PizzyLabs,\" you'll find a link to a service I created called \"SKYWARN Storm Spotter Status\". A little over a year ago,\u00c2\u00a0I wrote about my creation of a service to check Hazardous Weather Outlooks (HWOs) that were posted to the National Weather Service\u2026","rel":"","context":"In &quot;Labs&quot;","block_context":{"text":"Labs","link":"https:\/\/thepizzy.net\/blog\/category\/labs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2015-07-05_1318.png?fit=1200%2C745&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2015-07-05_1318.png?fit=1200%2C745&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2015-07-05_1318.png?fit=1200%2C745&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2015-07-05_1318.png?fit=1200%2C745&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2015-07-05_1318.png?fit=1200%2C745&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1750,"url":"https:\/\/thepizzy.net\/blog\/2014\/05\/skywarn-storm-spotter-status-released\/","url_meta":{"origin":1718,"position":5},"title":"SKYWARN Storm Spotter Status released!","author":"[[Neo]]","date":"May 27, 2014","format":false,"excerpt":"A technical look at the SKYWARN Storm Spotter status service offered by thepizzy.net","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/thepizzy.net\/blog\/category\/tech\/programming\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2014-05-26_1510.png?fit=900%2C525&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2014-05-26_1510.png?fit=900%2C525&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2014-05-26_1510.png?fit=900%2C525&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/thepizzy.net\/blog\/wp-content\/uploads\/2014\/05\/2014-05-26_1510.png?fit=900%2C525&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/1718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/comments?post=1718"}],"version-history":[{"count":3,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/1718\/revisions"}],"predecessor-version":[{"id":1723,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/posts\/1718\/revisions\/1723"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/media\/1719"}],"wp:attachment":[{"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/media?parent=1718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/categories?post=1718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thepizzy.net\/blog\/wp-json\/wp\/v2\/tags?post=1718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}