<?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: Jasmine Greenaway</title>
    <description>The latest articles on DEV Community by Jasmine Greenaway (@paladique).</description>
    <link>https://dev.to/paladique</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%2F81166%2Fc7ca56ed-0523-4554-9e92-1583ebe3e3d1.jpg</url>
      <title>DEV Community: Jasmine Greenaway</title>
      <link>https://dev.to/paladique</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/paladique"/>
    <language>en</language>
    <item>
      <title>Using SQL with Delta Lake [Create: Data]</title>
      <dc:creator>Jasmine Greenaway</dc:creator>
      <pubDate>Thu, 03 Dec 2020 20:04:27 +0000</pubDate>
      <link>https://dev.to/azure/using-sql-with-delta-lake-create-data-3fjh</link>
      <guid>https://dev.to/azure/using-sql-with-delta-lake-create-data-3fjh</guid>
      <description>&lt;p&gt;Do you work with data lakes? This session is for you! Join &lt;a href="https://about.me/JacekLaskowski" rel="noopener noreferrer"&gt;Jacek&lt;/a&gt; and I as we talk about Delta Lake, an open-source storage management system (storage layer) that brings ACID (atomicity, consistency, isolation, durability) transactions and time travel to Apache Spark and big data workloads.&lt;/p&gt;

&lt;p&gt;This past summer, Delta Lake 0.7.0 was released for use with Apache Spark 3. It was a &lt;a href="https://github.com/delta-io/delta/releases/" rel="noopener noreferrer"&gt;HUGE exciting release&lt;/a&gt; that also introduced full coverage of SQL DDL(data description language) and DML(Data Manipulation Language) commands. We'll be talking about this release and how Delta Lake approaches the challenges that can arise when working with data lakes.&lt;/p&gt;

&lt;p&gt;Join us for &lt;a href="https://aka.ms/createdata" rel="noopener noreferrer"&gt;Create: Data&lt;/a&gt; online event, and please put your questions in the chat and here, we are more than happy to take all your questions and thoughts with our speakers.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>news</category>
      <category>showdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Working with Jupyter Notebooks in Visual Studio Code</title>
      <dc:creator>Jasmine Greenaway</dc:creator>
      <pubDate>Mon, 16 Nov 2020 21:50:06 +0000</pubDate>
      <link>https://dev.to/azure/working-with-jupyter-notebooks-in-visual-studio-code-5130</link>
      <guid>https://dev.to/azure/working-with-jupyter-notebooks-in-visual-studio-code-5130</guid>
      <description>&lt;p&gt;This article is part of &lt;a href="http://aka.ms/PythonFunBites" rel="noopener noreferrer"&gt;#PythonFunBites&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One of the most difficult things about learning a new language can be getting your development environment right. As a newcomer to Python, my favorite way to learn has been with Jupyter Notebooks because the setup experience in &lt;a href="https://code.visualstudio.com/?WT.mc_id=python-10985-jasmineg" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt; was really straightforward and fast!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jupyter-notebook.readthedocs.io/en/latest/notebook.html" rel="noopener noreferrer"&gt;Jupyter Notebooks&lt;/a&gt; is an open source project that allows you to run Python code, as well as documentation with Markdown in a single notebook. The VS Code &lt;a href="https://code.visualstudio.com/docs/languages/python?WT.mc_id=python-10985-jasmineg" rel="noopener noreferrer"&gt;Python extension&lt;/a&gt; works with Notebooks natively, so that you can get started on building and debugging locally on your machine. If computation exceeds your machine's ability, you can change the remote server to offload computation.&lt;/p&gt;

&lt;p&gt;Ready to try it yourself? Make sure you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://code.visualstudio.com/?WT.mc_id=python-10985-jasmineg" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python&amp;amp;WT.mc_id=python-10985-jasmineg" rel="noopener noreferrer"&gt;Python Extension&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Confirm your Python environment has the &lt;a href="https://code.visualstudio.com/docs/python/jupyter-support#_setting-up-your-environment?WT.mc_id=python-10985-jasmineg" rel="noopener noreferrer"&gt;Jupyter package installed&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Need a notebook? Try this demo that explores the &lt;a href="https://pokeapi.co/docs/v2#info" rel="noopener noreferrer"&gt;PokéAPI&lt;/a&gt;, using the Pandas library to query the first 4 generations of Pokémon. &lt;a href="https://github.com/paladique/Sample-PokeNotebook" rel="noopener noreferrer"&gt;Check it out here!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch for content on all things Python at Microsoft between the 16th and 20th of November. Stay tuned here at dev.to for all kinds of content ranging from IoT, to Machine Learning and much more! 🐍&lt;/p&gt;

</description>
      <category>pythonfunbites</category>
      <category>azure</category>
      <category>python</category>
    </item>
    <item>
      <title>Create a website with daily deals from Twitter using Logic Apps and Blob Storage</title>
      <dc:creator>Jasmine Greenaway</dc:creator>
      <pubDate>Wed, 11 Dec 2019 16:13:09 +0000</pubDate>
      <link>https://dev.to/azure/create-a-website-with-daily-deals-from-twitter-using-logic-apps-and-blob-storage-141b</link>
      <guid>https://dev.to/azure/create-a-website-with-daily-deals-from-twitter-using-logic-apps-and-blob-storage-141b</guid>
      <description>&lt;p&gt;This article is part of &lt;a href="https://25daysofserverless.com" rel="noopener noreferrer"&gt;#25DaysOfServerless&lt;/a&gt;. New challenges will be published every day from Microsoft Cloud Advocates throughout the month of December. Find out more about how Microsoft Azure enables your &lt;a href="https://docs.microsoft.com/azure/azure-functions/?WT.mc_id=25days_devto-blog-cxa" rel="noopener noreferrer"&gt;Serverless functions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Have an idea or a solution? &lt;a href="https://twitter.com/intent/tweet?text=I'm%20joining%20the%20@azureadvocates%20%2325DaysOfServerless%20challenge!!%20Learn%20more%20at%20https://aka.ms/25daysofserverless%20or%20see%20solutions%20at%20https://dev.to/search?q=25DaysOfServerless!%20Join%20me!"&gt; Share your thoughts on Twitter! &lt;br&gt;
&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In Italy, children hang stockings on their fireplace so that an older woman named Befana can place their gifts inside of them. Along with the gifts, Befana also places candy or coal in each stocking based on how good they were that year.&lt;/p&gt;

&lt;p&gt;This year has been really busy for Befana so she hired you as an assistant to help move things along faster. While Befana was shopping for candy, she lost her glasses. Her replacement glasses will arrive before the night of Epiphany, when children will be expecting their gifts. This is very unfortunate for Befana because she hasn't finished her gift shopping yet!&lt;/p&gt;

&lt;p&gt;Befana is relying on you to finish shopping for the remaining gifts. Befana is really particular about getting a good deal on her shopping and expects you to be the same. Luckily, this is a major time of year for shoppers and deal seekers! But how do you keep track of all of these deals?Let's make a daily digest of current deals of interest!&lt;/p&gt;

&lt;p&gt;In today's challenge, you'll create a tool that finds deals of the day from Twitter and adds them to a static web page. A Logic App is great serverless solution for this!&lt;/p&gt;

&lt;h2&gt;
  
  
  Author's Solution
&lt;/h2&gt;

&lt;p&gt;There are many ways to approach this challenge, this is my solution. You can check out my HTML page &lt;a href="https://gist.github.com/paladique/3e4e41002edc82e025fa9fd588d87463" rel="noopener noreferrer"&gt;in this gist&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a Storage Account

&lt;ul&gt;
&lt;li&gt;Enable "Static Website" option.&lt;/li&gt;
&lt;li&gt;Set index document name to &lt;code&gt;index.html&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Save the primary endpoint somewhere to visit later.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Create a Logic App with a recurrence trigger 

&lt;ul&gt;
&lt;li&gt;Add Twitter connector and write the search syntax for desired Tweets. Here's a sample: &lt;code&gt;(from:DealsUnderCost OR from:wirecutterdeals ) OR (#deal OR #deals) filter:links -filter:replies&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;This search gathers tweets that:

&lt;ul&gt;
&lt;li&gt;Are my favorite accounts for deals&lt;/li&gt;
&lt;li&gt;Uses the #deals or #deal hashtags&lt;/li&gt;
&lt;li&gt;Only have links in them&lt;/li&gt;
&lt;li&gt;Are not replies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Create an variable action and save the search results body to a variable.&lt;/li&gt;
&lt;li&gt;Create a blob creation action, select the blob container named &lt;code&gt;$web&lt;/code&gt; from step 1 and name the blob something unique (the date time expressions are good option for this. Example: &lt;code&gt;dayOfYear(utcNow())&lt;/code&gt;). Add .json to the end of its name.&lt;/li&gt;
&lt;li&gt;Set the blob contents to the value of the variable. Alternatively, you can use the update blob action to modify the same blob each instead. &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi5mf2uumikab8bwwh6o9.png" alt="Logic app configuration" width="800" height="1177"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Open VS Code and create an HTML page called &lt;code&gt;index.html&lt;/code&gt;. 

&lt;ul&gt;
&lt;li&gt;In &lt;code&gt;index.html&lt;/code&gt;, create a basic barebones HTML page by typing html and pressing tab.&lt;/li&gt;
&lt;li&gt;Add a script tag with JavaScript code that loops through the JSON blob from step 2 and adds/appends the &lt;code&gt;TweetText&lt;/code&gt; content to the HTML page. Add as much information as you'd like from the Twitter data.&lt;/li&gt;
&lt;li&gt;If you'd like Tweets with links to render as links on your webpage, use a library like &lt;a href="http://alexcorvi.github.io/anchorme.js/" rel="noopener noreferrer"&gt;anchorme&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Visit the page created in step 1.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's the end result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flaepazsrwxb8xnj0ntwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flaepazsrwxb8xnj0ntwg.png" alt="completed site" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Approaches
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use a &lt;a href="https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-control-flow-loops" rel="noopener noreferrer"&gt;loop action in Logic Apps&lt;/a&gt; to loop through the Twitter search result body, grabs the tweet contents, and inserts it into the body of the HTML. JavaScript is not needed for this approach.&lt;/li&gt;
&lt;li&gt;Using an HTTP triggered Azure Function to serve the JSON file through its endpoint.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Want to submit your solution to this challenge? Build a solution locally and then &lt;a href="https://github.com/microsoft/25-days-of-serverless/issues/new?assignees=&amp;amp;labels=challenge-submission&amp;amp;template=challenge-solution-submission.md&amp;amp;title=%5BCHALLENGE+SUBMISSION%5D+" rel="noopener noreferrer"&gt;submit an issue&lt;/a&gt;. If your solution doesn't involve code you can record a short video and submit it as a link in the issue description. Make sure to tell us which challenge the solution is for. We're excited to see what you build! Do you have comments or questions? Add them to the comments area below.&lt;/p&gt;




&lt;p&gt;Watch for surprises all during December as we celebrate 25 Days of Serverless. Stay tuned here on dev.to as we feature challenges and solutions! Sign up for a &lt;a href="https://azure.microsoft.com/free/?WT.mc_id=25days_devto-blog-cxa" rel="noopener noreferrer"&gt;free account on Azure&lt;/a&gt; to get ready for the challenges!&lt;/p&gt;

</description>
      <category>25daysofserverless</category>
      <category>serverless</category>
      <category>azure</category>
    </item>
    <item>
      <title>Experiences with Pseudocode</title>
      <dc:creator>Jasmine Greenaway</dc:creator>
      <pubDate>Tue, 13 Aug 2019 18:06:54 +0000</pubDate>
      <link>https://dev.to/paladique/experiences-with-pseudocode-3i70</link>
      <guid>https://dev.to/paladique/experiences-with-pseudocode-3i70</guid>
      <description>&lt;p&gt;I've had a few programming courses where we didn’t write any code until we learned how to conceptualize the problem we were trying to solve with pen and paper. The professors introduced this as pseudocode: writing out the intended behavior of an algorithm, step by step in a language that can't be compiled on a computer. Normally, this will be similar to the language that you write and speak.&lt;/p&gt;

&lt;p&gt;You've probably heard of the rubber duck method: you talk through your problem to some inanimate object, like a rubber duck. The intent is to talk through the problem out loud for a clearer understanding of what you're trying to solve and/or a better idea of the algorithm needed to solve it. Pseudocode is great supplement or alternative to the rubber duck method because it applies the same principles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Pseudocode
&lt;/h2&gt;

&lt;p&gt;There really aren't any strict rules when it comes to writing pseudocode, but one rule you should try to follow is avoiding any language specific syntax. You should be able to read it aloud, but not compile it on your computer. Also, there's no rules on what you use to write it out on. For example, I like to write with pen and paper in my work journal, but will sometimes type it out in code comments.&lt;/p&gt;

&lt;p&gt;When I teach beginning web development to students, we learn about pseudocode before getting started on JavaScript. Here's the 4 step process I teach for writing pseudocode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Write the steps&lt;br&gt;
&lt;em&gt;Write out all the things that should happen. One tactic I like to use is writing the first and last steps, then working through what happens in between.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identify things that can change over time&lt;br&gt;
&lt;em&gt;Typically, these are identified as variables that will be used in your code.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identify conditions, decisions, and repeatable steps (if/else, loops)&lt;br&gt;
&lt;em&gt;These will most likely be control syntax like if/else statements and loops in your code.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Put it all together and organize&lt;br&gt;
&lt;em&gt;You might end up with a "draft" version if writing it out on pen and paper. In the same ways that we sometimes need to take a look at our commit history, it can be beneficial to have a history of your thought process and work, so keep that draft around!&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bonus Step&lt;/strong&gt;: &lt;em&gt;Don't overthink it!&lt;/em&gt;&lt;br&gt;
Problem solving approaches are subjective: pseudocode is a written representation of your tried and true approach. You're the expert. You can be as descriptive or concise as you'd prefer. These steps are just a guideline and can be followed in any order that works best for you. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;I keep a work journal that I write in a bullet journal-like format and leave space every day for notes, including pseudocode. This pseudocode is from a &lt;a href="https://github.com/Azure-Samples/functions-dotnet-github-release-notes" rel="noopener noreferrer"&gt;sample I built&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxz1czdfo3x6hx6vsa2d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxz1czdfo3x6hx6vsa2d.jpg" alt="author's pseudocode" width="800" height="732"&gt;&lt;/a&gt;&lt;/p&gt;
Pseudocode from my work journal



&lt;p&gt;In my web development class, I write pseudocode to guide students through the procedural steps of completing each homework assignment. &lt;/p&gt;

&lt;p&gt;The following is homework I assigned, where we built a small guessing game. The user will need to guess a random number between 1-25. If they haven't guessed the correct number after 5 guesses, then they lose the game. The user will win if the user guesses the correct number. Here's what a completed assignment can look like:&lt;/p&gt;


&lt;div class="glitch-embed-wrap"&gt;
  &lt;iframe src="https://glitch.com/embed/#!/embed/tranquil-parakeet?previewSize=100&amp;amp;path=index.html" alt="tranquil-parakeet on glitch"&gt;&lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;Here's the pseudocode that came with the assignment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. User types guessed number in textbox
2. User clicks button to guess number
3. If already guessed more than 5 guesses
    Display “game over, you lost”
    End
   Else
    Compare to winning number
4. If guess is equal to winning number
    Display “you won, game over”
    End
   Else
    Display “wrong, guess again”
    Back to step 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;If you're working through a complex problem and coming up with more questions than answers, try pseudocode! Taking a step away from your code to explicitly define the problem can bring you closer to a solution. &lt;/p&gt;

&lt;p&gt;PS: Check out this detailed post by &lt;a class="mentioned-user" href="https://dev.to/flippedcoding"&gt;@flippedcoding&lt;/a&gt;: &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/flippedcoding" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F77973%2Fbe223e4c-dc34-43da-a894-10be8f272316.jpg" alt="flippedcoding"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/flippedcoding/how-to-write-pseudo-code-2jfe" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How To Write Pseudo-code&lt;/h2&gt;
      &lt;h3&gt;Milecia ・ Apr 25 '19&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#advice&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#pseudocode&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>advice</category>
      <category>pseudocode</category>
    </item>
  </channel>
</rss>
