<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Daniela Elliott on Medium]]></title>
        <description><![CDATA[Stories by Daniela Elliott on Medium]]></description>
        <link>https://medium.com/@danielaelliott?source=rss-ecc086fb49a1------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*zloRClgtg9s_t2kEX4afdQ.jpeg</url>
            <title>Stories by Daniela Elliott on Medium</title>
            <link>https://medium.com/@danielaelliott?source=rss-ecc086fb49a1------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 02:29:29 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@danielaelliott/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[M]]></title>
            <link>https://medium.com/@danielaelliott/m-f5492a346452?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/f5492a346452</guid>
            <category><![CDATA[maths-tuition]]></category>
            <category><![CDATA[motivation]]></category>
            <category><![CDATA[revision]]></category>
            <category><![CDATA[studying]]></category>
            <category><![CDATA[a-level]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Mon, 03 Apr 2023 18:59:04 GMT</pubDate>
            <atom:updated>2023-04-03T18:59:04.720Z</atom:updated>
            <content:encoded><![CDATA[<h3>Simplifying Matrix Multiplication</h3><p>Matrix multiplication can be intimidating for students studying further math or math A-levels. The good news is that matrix multiplication does not have to be a daunting topic. With the right approach and techniques, it can be broken down into simple steps, making it more manageable. In this blog post, we will explore some tips and tricks for simplifying matrix multiplication. So, while the logic of matrices may differ from what you’re used to, you can develop a deep understanding of this powerful mathematical tool with practice and patience.</p><p>For some, the mere thought of crunching numbers and multiplying matrices is enough to induce a sense of frustration and dread. Others dive in and rise to the top with seemingly low effort, stress or work — mistakes are not seen as failures but rather as an expected part of the learning process. Like a river flowing around rocks, these errors are welcomed as opportunities to grow and deepen understanding. Matrices can seem confusing and abstract, with their own language and logic. I believe collaborating with others allows us to see new perspectives and compare our work. To truly master the art of matrix multiplication, we must approach it with a spirit of curiosity. Matrix operations can be dry and technical, but with patience, you can find beauty and elegance in it, as well as enjoy the learning process. Approach this with a growth mindset, and the once-daunting task of matrix multiplication will start to feel like second nature.</p><p>By working in a group, you can catch each other’s mistakes and learn from one another. When you work in a group, you can get feedback on your work more quickly, making the learning process more efficient and less stressful. You won’t spend time worrying in crisis mode as you look for the one tiny mistake that caused your result to not match up with the one in the textbook. When you’re in a state of flow, the process becomes almost meditative, and you may lose track of time as you explore the endless possibilities of matrix multiplication. So, take a deep breath, grab some friends, and dive into the world of matrices with an open mind and a willingness to learn. By working in a group and practising regularly, you can start to chip away at the overwhelming complexity and unlock the underlying patterns and principles. If you don’t have any friends, or your classmates are busy with other things, then worked example questions on youtube are a viable alternative.</p><p>I will be including examples from various textbooks and youtube videos, as well as my own examples to show you how matrices work. As a disclaimer, I did use that famous chatbot to help me write this.</p><h3>Rows and Columns</h3><p>Unlike regular numbers, matrices are non-commutative, meaning that the order in which you multiply them can change the result. This requires a different way of thinking and a deep understanding of the structure and interplay between rows and columns. While this can be daunting, mastering matrix multiplication can open up a new world of possibilities for analysing complex data sets and solving intricate problems.</p><p>When you multiply two matrices together, it’s important to remember that the order you multiply them matters. To be able to multiply a pair of matrices (AB), the rows in A have to be the same length as the columns in B. In other words — A has to have the same amount of columns as B has rows. This is because to find an element of the matrix (AB), we will multiply the <strong>corresponding elements</strong> for each <strong>row in A</strong> and <strong>column in B</strong>. An element is just one of the numbers in the matrix. There’s one element in each cell of the table. Row 1 column 1 has an element, row 1 column 2 has an element and so on… depending on the matrix size. These can be expressed using an individual letter for each element or with the letter that symbolises the matrix with a subscript showing the element’s location, e.g.(1,1) for the top left corner. Like when reading a book, we read the rows from left to right and the column from top to bottom. At least this part of matrices is intuitive.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/291/0*fVvY_HvUrUjKIAc0" /></figure><p>To begin with, it’s best to multiply matrices row by row. Start off with the first row and iterate through each column, then do the second row and so on.</p><p>Let’s multiply two matrices. For the purposes odd this explanation, let’s agree always to call the first one A and the second one B. To find any element, you use the rows and columns that intersect it. To find the top left element of AB for example, we use the first row of A and the first column of B. We multiply the first element in the row by the first element in the column to find their product, and then we add the product of the second element in row A and column B, the third… and so on, depending on how large the matrix is.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gqrn1Y2MMnJ1hG23iox4IA.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/296/0*Eti8_7FuA173Pv9t" /></figure><p>I think what is going on with the numbers looks clearer using this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/393/0*9pcv07L96IprzNl2" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f5492a346452" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[PyCharm Run and Debug]]></title>
            <link>https://medium.com/@danielaelliott/pycharm-run-and-debug-4f1b087a20f2?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/4f1b087a20f2</guid>
            <category><![CDATA[python3]]></category>
            <category><![CDATA[pycharm]]></category>
            <category><![CDATA[computer-science]]></category>
            <category><![CDATA[terminal]]></category>
            <category><![CDATA[windows-10]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Thu, 21 Apr 2022 15:57:07 GMT</pubDate>
            <atom:updated>2022-04-21T15:57:07.838Z</atom:updated>
            <content:encoded><![CDATA[<h4>The little green play button</h4><p>If you are trying to run some code in PyCarm all you need to do is press the green triangle in the top right corner. If it runs a different document instead of the one you are currently working on, go to the dropdown menu and select the file you want in the dropdown menu.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/379/1*SU-aYUUkxx8GOxw6GYo8TA.png" /></figure><h4>Can’t find the file you want to run?</h4><p>If the file isn’t there then you have to add it. In my example I want to run a file called “day_3_tasks.py”.</p><p>Click on [Run] in the bar at the very top then in the dropdown click [Run…]</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/713/1*WHABQ8XWxl4Go1QFATBXuw.png" /></figure><p>You’ll then get a little pop up with all the files open in PyCharm like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/206/1*IfqS7QFqh5LVKqg_GodVdA.png" /></figure><p>Click the file you want to open. It’ll probably be next to the little grey 2. You should now be able to run the code by pressing the green play button.</p><h4>Restoring [Edit Configurations… ]</h4><p>If you are like me you might’ve gone into settings and accidentally <em>broke</em> the play button in your IDE (PyCharm). Or maybe you moved around the folders or renamed a file? I was able to quickly fix this by closing and reopening my file after deleting the broken configuration. It automatically updated the path for me.</p><p>To do this, go to the dropdown menu and select [Edit Configurations] then click the little <em>close line </em>in the top left corner.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/336/1*sVh4rInvdCk974H3dws2pQ.png" /><figcaption>dropdown menu</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/315/1*AGSzIAedxrQxLbIzZ32OzA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/1*8xEeNXGFpxvQrVYrz6qm3w.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4f1b087a20f2" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating a Shortlist from a Dictionary]]></title>
            <link>https://medium.com/@danielaelliott/creating-a-shortlist-from-a-dictionary-6d0eed804c70?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/6d0eed804c70</guid>
            <category><![CDATA[python-dictionaries]]></category>
            <category><![CDATA[python-beginner]]></category>
            <category><![CDATA[beginner-coding]]></category>
            <category><![CDATA[coding-mistakes]]></category>
            <category><![CDATA[python3]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Wed, 06 Apr 2022 14:29:17 GMT</pubDate>
            <atom:updated>2022-04-06T14:30:40.701Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*80v3drVXj4dN7-pwWHDnkg.jpeg" /></figure><pre><br>scores <strong>=</strong> {<br>             &quot;Rick Sanchez&quot;: 70,<br>             &quot;Morty Smith&quot;: 35,<br>             &quot;Summer Smith&quot;: 82,<br>             &quot;Jerry Smith&quot;: 23,<br>             &quot;Beth Smith&quot;: 98<br>          }</pre><p>To make a list of People that passed certain criteria from a Dictionary you can: <em>either</em> <strong>break the dictionary down into tuples</strong> <em>or</em> use <strong>dictionary methods</strong> to cycle through the <strong>keys and values</strong>. In this example from Udacity, I had to find the people who got scores of 65 or higher. I used string methods to create a new list that will contain the people who passed.</p><pre>passed <strong>=</strong> [name <strong>for</strong> name <strong>in</strong> scores<strong>.</strong>keys() <strong>if</strong> scores[name] <strong>&gt;=</strong> 65]<br>print(scores<strong>.</strong>keys())<br>print(passed)<br><em># using dictionary methods</em></pre><pre>dict_keys([&#39;Rick Sanchez&#39;, &#39;Morty Smith&#39;, &#39;Summer Smith&#39;, &#39;Jerry Smith&#39;, &#39;Beth Smith&#39;])<br>[&#39;Rick Sanchez&#39;, &#39;Summer Smith&#39;, &#39;Beth Smith&#39;]</pre><p>Initially, I used dictionary methods. Returning the names (i.e. the keys of the dictionary) if the <strong><em>value stored </em>in the dictionary at [name] </strong>was larger or equal to 65. This works well.</p><p>But the answer Udacity gave was a tiny bit different and looked confusing at first because it had a comma in the middle of the list method making it look like two different sections. English grammar is different from punctuation in programming, but to the untrained eye, it looks like two separate clauses in a complex sentence.</p><pre>passed <strong>=</strong> [name <strong>for</strong> name, score <strong>in</strong> scores<strong>.</strong>items() <strong>if</strong> score <strong>&gt;=</strong> 65]<br>print(passed)</pre><pre>[&#39;Rick Sanchez&#39;, &#39;Summer Smith&#39;, &#39;Beth Smith&#39;]</pre><p>The code outputs the same answer but it’s not obvious why if you don’t realise that the comma is simply denoting a tuple: name, score.</p><h4>scores.items() is an object that acts like a list of tuples.</h4><p>This comma is just there because they are using a tuple. The code runs the same if you include brackets but I hope from now on you don’t get confused when reading a tuple without brackets.</p><pre>passed <strong>=</strong> [name <strong>for</strong> (name, score) <strong>in</strong> scores<strong>.</strong>items() <strong>if</strong> score <strong>&gt;=</strong> 65]<br>print(f&quot;score.items() : {scores<strong>.</strong>items()}&quot;)<br>print(f&quot;\n passed: {passed}&quot;)<br><em># using tuples</em></pre><pre>score.items() : dict_items([(&#39;Rick Sanchez&#39;, 70), (&#39;Morty Smith&#39;, 35), (&#39;Summer Smith&#39;, 82), (&#39;Jerry Smith&#39;, 23), (&#39;Beth Smith&#39;, 98)])</pre><pre> passed: [&#39;Rick Sanchez&#39;, &#39;Summer Smith&#39;, &#39;Beth Smith&#39;]</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6d0eed804c70" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Who says a proper meal involves cutlery]]></title>
            <link>https://medium.com/@danielaelliott/my-favourite-sandwiches-f010add56aa8?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/f010add56aa8</guid>
            <category><![CDATA[food]]></category>
            <category><![CDATA[cooking]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Tue, 22 Mar 2022 15:29:04 GMT</pubDate>
            <atom:updated>2022-03-22T15:57:48.055Z</atom:updated>
            <content:encoded><![CDATA[<h4><strong>Who says a proper meal involves cutlery</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EuNi1_35KrElJDBn" /></figure><h4><strong>The perfect bacon sandwich</strong></h4><p>— Cook bacon in fan oven for 13 minutes at 200°C<br>— Butter some golden brown toast with a little butter<br> — Drizzle maple syrup on top of the butter, then assemble the sandwich</p><h4>The perfect fishfinger sandwich.</h4><p>— Cook the fish fingers as instructed, in the oven<br> — Use soft white bread with a bit of ketchup<br> — Season the fish fingers with salt and freshly ground black pepper.</p><h4>Tomato sandwich.</h4><p>— Use tomatoes that are as ripe and fragrant as you can<br> — Toast some bread until it’s dark brown<br> — Spread Butler, Mayo or both depending on availability<br><em>Use fresh basil or basil oil if you want.</em><br> — Season with plenty of salt and black pepper</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f010add56aa8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Editing a List Using a Loop]]></title>
            <link>https://medium.com/@danielaelliott/editing-a-list-using-a-loop-ed80a73c4920?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/ed80a73c4920</guid>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[beginner-coding]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[python-programming]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Tue, 22 Mar 2022 15:19:34 GMT</pubDate>
            <atom:updated>2022-03-23T11:07:21.186Z</atom:updated>
            <content:encoded><![CDATA[<p>I was doing a question on Codecademy python 3 called code challenge: Delete Starting Even Numbers. I had to make a function that cuts out all of the even numbers at the beginning of a list until you reach an odd number and returns the modified list- either an empty list or a list beginning with an odd number.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/865/1*Qv5sErgWYuMaO_LJYKN4-g.jpeg" /></figure><p>Since I was working with a list, I decided to use a <strong>for</strong> loop, but I came to an interesting roadblock that gave me insight into the way python works. At first, my code looked like this:</p><p>In [98]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>  result_list <strong>=</strong> lst<br>  <strong>for</strong> n <strong>in</strong> lst:<br>    <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>      <strong>del</strong> result_list[0]<br>    <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>      <strong>break</strong><br>  <strong>return</strong> result_list</pre><p>In [99]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>[11, 12, 15]<br>[10]</pre><p>It wasn’t returning the expected result. So I added a print statement to see what was happening inside the code. The first thing I noticed with the print statement was that it was looping too many times. I thought adding a break would mean that the loop wouldn’t run unnecessarily, but it continued to loop through, giving the same result a couple of times. I played around with the positioning of all these things for a while without getting anywhere and needed a better test.</p><p>In [100]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>  result_list <strong>=</strong> lst<br>  <strong>for</strong> n <strong>in</strong> lst:<br>    <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>      <strong>del</strong> result_list[0]<br>      print(result_list)    <br>    <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>      <strong>break</strong><br>  <strong>return</strong> result_list</pre><p>In [101]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>[8, 10, 11, 12, 15]<br>[10, 11, 12, 15]<br>[11, 12, 15]<br>[11, 12, 15]<br>[8, 10]<br>[10]<br>[10]</pre><h3>In [102]:</h3><pre><strong>def</strong> delete_starting_evens(lst):<br>    result_list <strong>=</strong> lst<br>    <strong>for</strong> n <strong>in</strong> lst:<br>        <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>            <strong>del</strong> result_list[0]   <br>        <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>            <strong>return</strong> result_list<br>   <br><em>#   returns none</em></pre><p>In [103]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>None<br>None</pre><h3>Fiddling around with the code</h3><p>At first, I thought that it could be an issue with the nesting or syntax of my code. I didn’t know what to do so I just fiddled with it. I focused on positioning my return statement inside or outside the loop, but fiddling around with it didn’t really help. I thought about fixing this by adding a second return outside of the loop. But that made it worse. It never returned what I wanted.</p><p>I had to properly look into what was going on inside the code with the help of f strings to find what the true issue is and how to fix it.</p><h3>Finding the real problem — A better test</h3><p>The f string in my test made it clear that the problem was higher up in the code than I had thought. The code in the second test should’ve gone through n=4, n=8 and n=10. But it wasn’t doing what I wanted; it skipped over n=8. In the first test, which <em>seems</em> to be returning the correct result, the process it goes through wasn’t what I’d expected either. It was hopscotching over numbers, skipping values of n. The syntax errors the editor was throwing me because my chosen format was two space indentation were irrelevant. I switched to four-space indentation but I also knew now that there was a deeper problem with my code.</p><p>In [104]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>    result_list <strong>=</strong> lst<br>    <strong>for</strong> n <strong>in</strong> lst:<br>        <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>            <strong>del</strong> result_list[0]<br>            print(f&quot;n: {n}  {result_list}&quot;)<br>        <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>              <strong>break</strong><br>    <strong>return</strong> result_list</pre><p>In [105]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>n: 4  [8, 10, 11, 12, 15]<br>n: 10  [10, 11, 12, 15]<br>n: 12  [11, 12, 15]<br>[11, 12, 15]<br>n: 4  [8, 10]<br>n: 10  [10]<br>[10]</pre><h3>What’s Happening -A deeper look into the code.</h3><p>When we update the value of <strong>result_list</strong>, <strong>lst </strong>also updates instead of staying the same as expected. The issue is that the two variables are<strong> tied </strong>to each other. When I defined <strong>result_list</strong>, I made it equal to the value at the same address. The variable points to the same address as <strong>lst, </strong>somewhere in the RAM , rather than making it the same value but located somewhere else. To store the variable at a different address, you have to make a copy of the data or make it clear they are two different things when assigning it. You want them to be the same, <em>not</em> <em>equivalent </em>to update one without updating the other.</p><h3>The simple fix</h3><p>I made sure to clearly clarify in my code that <strong>result_list</strong> isn’t a reference to <strong>lst </strong>-It’s a completely separate list that just starts off looking the same. I made result_list a copy of lst. You can also do this using slices: slicing the list from beginning to end returns a separate but identical list. Ultimately you need to know whether you are pointing to an existing address or filling a new one.</p><h4>Using the built-in copy function</h4><p>In [106]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>    result_list <strong>=</strong> lst<strong>.</strong>copy()<br>    <strong>for</strong> n <strong>in</strong> lst:<br>        <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>            <strong>del</strong> result_list[0]<br>            print(f&quot;n: {n}  {result_list}&quot;)<br>        <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>              <strong>break</strong><br>    <strong>return</strong> result_list</pre><h4>Using Slices</h4><p>In [107]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>    result_list <strong>=</strong> lst[:]<br>    <strong>for</strong> n <strong>in</strong> lst:<br>        <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>            <strong>del</strong> result_list[0]<br>            print(f&quot;n: {n}  {result_list}&quot;)<br>        <strong>elif</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 1:<br>              <strong>break</strong><br>    <strong>return</strong> result_list</pre><h4>Inside the working code</h4><p>In [108]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>n: 4  [8, 10, 11, 12, 15]<br>n: 8  [10, 11, 12, 15]<br>n: 10  [11, 12, 15]<br>[11, 12, 15]<br>n: 4  [8, 10]<br>n: 8  [10]<br>n: 10  []<br>[]</pre><h3>My Final Code</h3><p>Now that it works how I expect it to, I can remove extra lines like the print statement and the else if statement. They were only in there because I thought it might be nice to experiment with removing multiples of numbers other than two. Since all numbers are either even or odd, this bit wasn’t really necessary for the purpose of the function <strong>delete_starting_evans</strong>.</p><p>In [109]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>    result_list <strong>=</strong> lst<strong>.</strong>copy()<br>    <strong>for</strong> n <strong>in</strong> lst:<br>        <strong>if</strong> result_list[0] <strong>%</strong> 2 <strong>==</strong> 0:<br>            <strong>del</strong> result_list[0]<br>        <strong>else</strong>:<br>            <strong>break</strong><br>    <strong>return</strong> result_list</pre><p>In [110]:</p><pre>print(delete_starting_evens([4, 8, 10, 11, 12, 15]))<br>print(delete_starting_evens([4, 8, 10]))</pre><pre>[11, 12, 15]<br>[]</pre><h3>What Codecademy did</h3><p>I found my code pretty satisfying but it wasn’t as concise as Codecademy’s answer. They used a <strong>while</strong> loop and<strong> slicing</strong> instead of del. Because you don’t need to create a <strong>new_list</strong> variable, it doesn’t have the same problem I initially had. The value of lst keeps on being updated directly and that’s just fine.</p><p>In [111]:</p><pre><strong>def</strong> delete_starting_evens(lst):<br>    <strong>while</strong> (len(lst) <strong>&gt;</strong> 0 <strong>and</strong> lst[0] <strong>%</strong> 2 <strong>==</strong> 0):<br>        lst <strong>=</strong> lst[1:]<br>    <strong>return</strong> lst</pre><h3>Takeaways</h3><h4>When creating a new list using variables in python, you have to be very specific.</h4><p>When you make a new variable equal to a list, it doesn’t automatically create a copy of that list and store it somewhere else. Instead of creating a new variable with its value being independent of the other variable, it defines the variable as being stored on the same address as the original list. It’s just referring to the same list, the same value, in the same place. If you enact list methods on this new variable: it will be editing the value at the address it points to, therefore changing both the old and new variables. To escape this, you have to either specify that you are making a copy of the list or assign one of the variables a new specific value that isn’t just a reference pointing to the value of another variable.</p><p>If you don’t specify that you are making a copy of the old list, editing one list will edit them both.</p><p>In [112]:</p><pre>old_list <strong>=</strong> [2, 4, 5]<br>new_list <strong>=</strong> old_list<br>print(new_list)</pre><pre>[2, 4, 5]</pre><p>Essentially making them equivalent to each other until you assign a new value to one of them. Using <a href="https://www.w3schools.com/python/python_ref_list.asp">methods</a> will change the value stored at the address both variables are pointing to, rather than changing the value the individual variable is assigned.</p><p>In [113]:</p><pre>old_list<strong>.</strong>pop()<br>print(new_list)<br>new_list<strong>.</strong>pop()<br>print(old_list)</pre><pre>[2, 4]<br>[2]</pre><h3>In the terminal</h3><p>In [114]:</p><pre><strong>&gt;&gt;&gt;</strong> bus_numbers <strong>=</strong> [1, 4, 0]<br><strong>&gt;&gt;&gt;</strong> bus_numbers_2 <strong>=</strong> bus_numbers<br><strong>&gt;&gt;&gt;</strong> <strong>del</strong> bus_numbers[0]<br><strong>&gt;&gt;&gt;</strong> bus_numbers_2<br><strong>&gt;&gt;&gt;</strong> [4, 0]<br><strong>&gt;&gt;&gt;</strong> bus_numbers <strong>=</strong> [1, 4, 0]<br><strong>&gt;&gt;&gt;</strong> bus_numbers_2 <strong>=</strong> bus_numbers[:]<br><strong>&gt;&gt;&gt;</strong> <strong>del</strong> bus_numbers[0]<br><strong>&gt;&gt;&gt;</strong> bus_numbers_2<br><strong>&gt;&gt;&gt;</strong> [1, 4, 0]</pre><p>Out[114]:</p><pre>[1, 4, 0]</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ed80a73c4920" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Top 10 Easy Ramen Toppings]]></title>
            <link>https://medium.com/@danielaelliott/top-10-easy-ramen-toppings-2e931fb4b8d9?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/2e931fb4b8d9</guid>
            <category><![CDATA[cooking]]></category>
            <category><![CDATA[food]]></category>
            <category><![CDATA[japan]]></category>
            <category><![CDATA[life-hacking]]></category>
            <category><![CDATA[korea]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Wed, 13 May 2020 22:00:44 GMT</pubDate>
            <atom:updated>2020-05-13T22:15:20.283Z</atom:updated>
            <content:encoded><![CDATA[<p>The main ramen flavours you can easily get in Britain are Prawn, Chicken, Beef, and Curry — of which curry and beef are my personal favourites. I’d say all of them are quite neutral and can blend into the background, going with anything. We all know that we can add toppings to our ramen, but what are the tastiest and most accessible options for the casual pot noodle consumer in the west? Here are some tasty toppings that stand alone as good additions <em>and</em> can be combined without clashing, for those of us who simply want to spice up our instant noodles, no need for a long recipe or too many dishes to wash up afterwards. You can use one or many of the things on this list; they are all quick and easy to buy, try and experiment with.</p><h3>1. Scallions, green onions or chives</h3><p>Scallions, otherwise known as green onion. You can use the green part and the white part if you like, or just the green bits. You can pre-prepare some, by slicing it thinly and diagonaly, then keep it in an old salsa jar in the fridge. It stays fresh for about five days. Or you can chop it up using scissors right over a bowl, eliminating the need for a chopping board and knife skills.</p><h3>2. Boiled egg</h3><p>A boiled egg. Put a few eggs in boiling water and cook them for 8 minutes, cool them in ice water and keep them in the fridge for when you feel like ramen or to have with breakfast or on a salad. This is a good, vegetarian, source of protein. If you don’t feel like food prep, or boiling water and waiting 8 minutes, than make a microwave egg. Crack one or two eggs into a mug, (you can mix it if you don’t like cooked egg yolk,) then microwave it on high for 3 minutes. You can also include salt, black pepper, butter, cut up ham (you can use kitchen scissors for this too), or scallions</p><h3>3. Soya sauce</h3><p>Soya sauce. You may be hesitant to use this because the flavour packets already have alot of salt in them, but you can choose to use half a sachet of powder, (especially if you are one of those people who drains away the water and then adds seasoning instead of drinking the broth). You can also buy reduced salt soya sauce, and like everything on this list, it’s up to you. A healthy bonus recipe is: chop up some cucumber and mix it with plain drained ramen and soya sauce; add some chilly flakes, chilly oil or scallions, if you want some extra kick, and enjoy as is or with cream cheese.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*JMle5GxohYBxlPCx" /></figure><h3>4. Flavoured oils.</h3><p>Sesame oil and chilly oil are my personal faves but you can experiment with garlic oil, truffle oil, basil oil, or normal olive oil. These all last long in the cupboard and add <em>a lot</em> of flavour.</p><h3>5. Canned sweetcorn and frozen peas</h3><p>Canned sweetcorn and frozen peas. If you want to include one of your five a day in your ramen, these slightly sweet veggies go perfectly with a salty broth. They also last ages, so you can stock up and be sorted for months. Just make sure <em>not</em> to get <em>canned peas</em>, they are too soft and mushy for the already soft noodles.</p><h3>6. Seaweed</h3><p>This also lasts long in the cupboard, and you don’t need much as a topping or decoration to garnish your noodles with. It has a nice umami flavour and adds variety to your ramen. You can rip it up into little pieces and mix it in or use scissors to cut it into rectangles and carefully place it fanned along the side of your bowl.</p><h3>7. Prawns</h3><p>Pre cooked prawns can be bought chilled and you can freeze them to last longer. They are ‘ready to eat’ so you don’t need to worry about warming them up in a pan, just let the broth temper the excessive chill- this will gently warm them up and cool down the broth a bit so you can eat immediately without burning your tongue.</p><h3>8. Hot dogs, ham and pre-sliced sandwich meats.</h3><p>These ready to eat meats can all be cut with kitchen scissors, they don’t need to be cooked and are a convenient source of protein. This can single-handedly elevate a snack to a meal.</p><h3>9. Bok choi.</h3><p>You can get this at plenty of normal supermarkets. It is a delicious and aromatic green, which will wilt in the broth.</p><h3>10. Leftover meat.</h3><p>We shouldn’t eat too much processed meat. Just as you can rip open a pack of ham to mix into your ramen, you can reach into your fridge for that leftover chicken or roast beef sandwiched under a plate.</p><p>These are my top 10 ramen toppings. If you like the sound of some of these don’t hesitate to try them — it’s so quick and easy, you are bound to have at least one of these at home. If you don’t have ramen you can use noodles or pasta and a stock cube. Be creative, there are plenty of great things not on this list, but these are my personal faves.</p><p>Everyone makes ramen differently and has their own go to combinations. How do I make it? I am impatient when it comes to ramen, so I put the ramen, 3/4 of a packet of seasoning and kettle-boiled water in a bowl together, then I cover it with another bowl and put it in the microwave for 2 minutes on low. Then I carefully take it out, uncover, mix and add seseme seed oil and any other toppings I feel like. Another interesting thing you can try is mixing peanut butter into the broth, this goes well with chilli oil.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2e931fb4b8d9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[6 Tips for Tuning your Kalimba]]></title>
            <link>https://medium.com/@danielaelliott/6-tips-for-tuning-your-kalimba-fd63076f725a?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/fd63076f725a</guid>
            <category><![CDATA[instruction]]></category>
            <category><![CDATA[tuning]]></category>
            <category><![CDATA[instruments]]></category>
            <category><![CDATA[kalimba]]></category>
            <category><![CDATA[help]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Tue, 12 May 2020 17:47:05 GMT</pubDate>
            <atom:updated>2020-05-12T17:49:42.279Z</atom:updated>
            <content:encoded><![CDATA[<p>When you buy a kalimba online, the description will often imply that it’s already tuned but don’t put off tuning it. Although it sounds good either way your kalimba will always sound better when it’s in tune. Like most instruments, tuning the kalimba is a pain. There are plenty of sites and videos out there that teach you how to do it, but here is what I did and some tricks I learned:</p><ol><li>Use the flat round side of the hammer.</li><li>Rest your hand on the longer tines to stop them ringing out and drowning out the sound of the one you are plucking.</li><li>Use your thumb or a finger to lightly hold the tine you are tuning, so that it actually slides backwards or forwards (as you want it to get shorter or longer), instead of it getting bent up or down or to the side. This also dulls it’s noisiness a bit.</li><li>Eliminate background noise in your room or tune it sitting under your duvet.</li><li>Don’t be afraid to try different tuning apps. A lot of apps also have a setting you can switch on and off that eliminates background noise which is very useful and worth trying.</li><li>If you are using a smart phone to tune it, make sure to have it’s microphone as close to your instrument as possible.</li></ol><p>I ended up using my guitar tuner to tune it. It has a clip with a silicone grip that conducts the sound from the wood directly into the gadget, without any need for a microphone that detects vibrations in the air. Usually you would clip it to the head of the guitar, but I put it on the sound hole of my Kalimba. I ended up accidentally breaking the tuner when I twisted the clip in the wrong direction, so if you try this method be careful- remember that guitar tuners are intended for guitars.</p><p>Now play the notes and notice their fresh beautiful sound. Tuning your kalimba may be daunting but, once it’s over, it’ll be worth it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Xff6MwEAwBaoCZoyrb3qBg.jpeg" /><figcaption>my kalimba, decorated with stickers</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fd63076f725a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Kalimba, or Thumb Piano]]></title>
            <link>https://medium.com/@danielaelliott/the-kalimba-or-thumb-piano-afc309cf77c0?source=rss-ecc086fb49a1------2</link>
            <guid isPermaLink="false">https://medium.com/p/afc309cf77c0</guid>
            <category><![CDATA[hobby]]></category>
            <category><![CDATA[relaxation]]></category>
            <category><![CDATA[music]]></category>
            <category><![CDATA[childhood]]></category>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Daniela Elliott]]></dc:creator>
            <pubDate>Mon, 11 May 2020 16:18:28 GMT</pubDate>
            <atom:updated>2020-05-11T16:26:03.095Z</atom:updated>
            <content:encoded><![CDATA[<p>I recently bought a <a href="https://www.youtube.com/watch?v=0QMXc4rBw7k">thumb piano</a> online. It arrived surprisingly quickly, after I ordered it on amazon, and I got straight into learning some songs. Kalimba tabliture is simple and straight forward. It works like guitar hero or those <a href="https://www.youtube.com/watch?v=kSEpGg5eOm8">youtube videos of piano’s playing insanely complicated </a>music as the notes scroll down the screen, except it can be static. It took some patience, but within an hour I could play a decently paced and layered rendition of the first part of “<a href="https://www.youtube.com/watch?v=GTXBLyp7_Dw">Hedwigs theme</a>”.</p><p>I don’t think it’s so incredibly easy purely because of how simple kalimba tabs are. In fact, although kalimba tabs seem simple in comparison to standard five line stave notation, they can be difficult to navigate. The instrument is perfect for beginners and casual players, although there are so many lines it’s easier to get lost.</p><p>I went to guitar lessons as a child and briefly played the saxophone, violin, piano, ukulele and recorder (at different times) I never got good enough at the others for it to sound more like music than a series of notes, but arguably I have a slight head start in music comprehension. I still think that the thumb piano is definitely the easiest and most satisfying instrument to learn by yourself. Even better than the classic school recorder or ukelele.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-GZtEQpYEemQyVt1-7dbcA.jpeg" /></figure><p>Firstly it’s low maintenance. There are no tubes or mouthpieces to clean. It doesn’t have resin to apply, or a bow you tighten and then loosen after every use. There are no reeds to replace. It’s easy to just pick up when you feel like it and fiddle around with it, without feeling like you have to sit or stand with proper posture and play an actual song or “practice music”. It’s also small enough to keep on your bookshelf or bedside table, or on the mantle piece. Unlike every other instrument that fits this criterion you don’t have to put it in your mouth. A xylophone or glockenspiel with a similar size to a 17 tone kalimba would have no where near as many notes.</p><p>The kalimba also usually comes with the names of the notes written directly on the metal tines. The one I have is labled “CEGBDEFACE” from the middle to the right and “CDFACEGBD” from the middle to the left. I’ve stuck stickers, as markers, on some of the notes to make it easier for me to tell which note is which.</p><p>The second song I tried to learn is ‘Pachelbel’s Canon’ commonly known as “the wedding song”. It was so satisfying to hear a familiar song gradually coming together, clearer with every iteration. It reminded me of mobile games like flappy bird, or my first time playing Temple Run, on a Nexus 7, in the waiting room of my music school. Each bit of the song is a new level or a new achievement unlocked. I remember finding it really hard to make that first jump over the first chasm in Temple Run. I kept on falling into the ditch, dying, playing again and falling into the ditch over and over again. But eventually I got a hang of it and I was soon jumping, dodging and ducking under more than just one obstacle, then tens of obstacles…. And in my ten year old mind I was a pro. I even mastered leaning to the sides to collect coins. Every new song I resolve to learn is like downloading a new game. I remember having kids crowding around and watching over my shoulder. One of my favourite memories is playing piano tiles in that crowded waiting room; I was aware aware of the irony about playing a hacked together, unrealistic, piano game, right outside the door to a singing classroom. It was so fun and warm.</p><p>The kalimba, quite simply, sounds nice. It has a smooth soothing timbre that you don’t need practice to achieve. To make other instruments sound nice you need to master certain techniques. With guitar your left hand needs to hold down the string hard enough and close enough to the fret, for the note not to sound hollow or buzzy. (Frets are the metal lines along the neck separating the notes). You need to play above the sound hole for a standard sound and not stray side to side. There are special italian words for playing closer to the bridge or the neck; and also there’s more terminology for plucking the strings softly or loudly, letting them ring out or dampening them. There’s less variability with the thumb piano, so you can play music that sounds nice without learning the equivalent techniques for controlling the quality of the notes.</p><p>Kalimba music is also really soothing to listen to, there’s tonnes of people posting kalimba covers on youtube, it’s an entire sub-genre with a community feel in the comment section. If you are thinking about it, I would definitely encourage you to source a kalimba and start playing.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=afc309cf77c0" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>