<?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: Vidya</title>
    <description>The latest articles on DEV Community by Vidya (@vidyabhandary).</description>
    <link>https://dev.to/vidyabhandary</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%2F477129%2F40959965-40fb-4b40-8322-9a94a91df0c3.jpeg</url>
      <title>DEV Community: Vidya</title>
      <link>https://dev.to/vidyabhandary</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vidyabhandary"/>
    <language>en</language>
    <item>
      <title>The Composer's Quill: Weaving Melodies using text prompts with MusicGen</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Fri, 16 Jun 2023 17:54:11 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/the-composers-quill-weaving-melodies-using-text-prompts-with-musicgen-36fe</link>
      <guid>https://dev.to/vidyabhandary/the-composers-quill-weaving-melodies-using-text-prompts-with-musicgen-36fe</guid>
      <description>&lt;h1&gt;
  
  
  Step by Step Guide to generate music in Google Colab
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AopAW5t6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/0-Wow1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AopAW5t6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/0-Wow1.jpg" alt="" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Go to &lt;a href="https://github.com/camenduru/MusicGen-colab"&gt;https://github.com/camenduru/MusicGen-colab&lt;/a&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Do star his repo !!!
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---1Tc_-2o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/1-GithubRepo.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---1Tc_-2o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/1-GithubRepo.JPG" alt="" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Scroll down to reach the colab notebooks
&lt;/h3&gt;




&lt;h3&gt;
  
  
  3. Choose any colab notebook and click on "Open in Colab".
&lt;/h3&gt;

&lt;h4&gt;
  
  
  (You will need gmail ID to use colab.)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pGkfdmd9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/3-OpenInColab.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pGkfdmd9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/3-OpenInColab.JPG" alt="" width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Loading ... This may take awhile.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c9StlIbe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/4-Loading.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c9StlIbe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/4-Loading.JPG" alt="" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  5. The magical colab notebook with just 5 lines !!! Click on the arrow.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ysTlkl4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/5-ClickOnArrow.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ysTlkl4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/5-ClickOnArrow.JPG" alt="" width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  6. You will get a warning message - Click "Run anyway".
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8WpDirNG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/6-Warning.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8WpDirNG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/6-Warning.JPG" alt="" width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  7. The commands in the cell will get executed - the git repo will be cloned and the required libraries will get installed This step could take a while, even with the notebook having a setting of GPU by default.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gQkJMmBk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/7-CmdExec.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gQkJMmBk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/7-CmdExec.JPG" alt="" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Ignore the error in red and click on the gradio live link.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M48a2OSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/8-GradleLink.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M48a2OSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/8-GradleLink.JPG" alt="" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  9. The Music Generation playground !!!
&lt;/h3&gt;

&lt;h3&gt;
  
  
  No amount of exclamations can tell how exciting it is to be able to create music with text especially for a plebian !
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DmFNiBdR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/9-MusicTextPlayground.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DmFNiBdR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/9-MusicTextPlayground.JPG" alt="" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  10. Add your music prompt. This was my prompt.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Create a binaural beat composition that promotes concentration and focus for studying. The beats should be calming and soothing, without any loud or jarring noises. Aim for a frequency range that encourages an alert mental state without inducing sleepiness.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add other details are per your liking&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;duration of the composition&lt;/li&gt;
&lt;li&gt;model - melody (works with both text and sample music prompt)&lt;/li&gt;
&lt;li&gt;medium, small and large models (these work only with text prompts)&lt;/li&gt;
&lt;li&gt;an increase in temperature gives more randomness in the output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6T63D4LE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/10-MusicPrompt.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6T63D4LE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/10-MusicPrompt.JPG" alt="" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  11. Click on generate to process your text prompt to generate music.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h_fPGYzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/11-Processing.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h_fPGYzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/11-Processing.JPG" alt="" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  12. The model gives the time it will take to create the music along with the number of steps and %age of completion.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P5QJSzqu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/13-GenSteps.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P5QJSzqu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/13-GenSteps.JPG" alt="" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  13. Some of the other options to check out -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Melody Condition (optional) - To remix mostly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Music Sample - Works only with the melody model, To create music similar to a piece of music you like&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seed gives the seed of the created music and if you want to create music similar to one you have already created before, the seed number can be added&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The author of the repo says -&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These parameters, such as top-k, top-p, temperature, and classifier-free guidance, provide different ways to influence the output of a music generation model and strike a balance between creativity, diversity, coherence, and control. The specific values for these parameters can be tuned based on the desired outcome and user preferences.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-BOP2au--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/12-OtherOption.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-BOP2au--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/12-OtherOption.JPG" alt="" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  14. And finally - The generated music result ! You can enjoy listening to your creation in the browser as well as download your creation to your drive as a mp4 file.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SFmn6yNm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/14.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SFmn6yNm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/14.JPG" alt="" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  15. Trying the melody option to get a different version of the beats I like.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EnDgAf9C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/vidyabhandary/blog/blob/master/images/MusicGen/15.JPG%3Fraw%3Dtrue" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EnDgAf9C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/vidyabhandary/blog/blob/master/images/MusicGen/15.JPG%3Fraw%3Dtrue" alt="" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  16. The result is not bad, although the original is definitely better. Lots of steps and processing when asked 40 second composition. The option with change in temperature came out pretty good.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a2EWsDPo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/16.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a2EWsDPo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/16.JPG" alt="" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  "So finally I can compose music", without knowing how to write musical notes !!
&lt;/h3&gt;

&lt;h3&gt;
  
  
  "What a time to be alive !!!"
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mVOZz1tR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/0-Wow2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mVOZz1tR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/vidyabhandary/blog/master/images/MusicGen/0-Wow2.jpg" alt="" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tutorial by the author of the colab notebook - &lt;a href="https://www.youtube.com/watch?v=EGfxuTy9Eeo"&gt;https://www.youtube.com/watch?v=EGfxuTy9Eeo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One little coder - &lt;a href="https://www.youtube.com/@1littlecoder"&gt;https://www.youtube.com/@1littlecoder&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the words of Dr Károly Zsolnai-Fehér of the youtube channel "Two Minute Papers" - what a time to be alive !!!!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The surreal images have been created using Bing Image Creator - &lt;a href="https://www.bing.com/create"&gt;https://www.bing.com/create&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>promptengineering</category>
      <category>music</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Business at the Speed of AI</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Sun, 05 Feb 2023 13:54:39 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/business-at-the-speed-of-ai-16b5</link>
      <guid>https://dev.to/vidyabhandary/business-at-the-speed-of-ai-16b5</guid>
      <description>&lt;p&gt;Today, Artificial Intelligence(AI) plays a crucial role in shaping our online experiences, often driving them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When we publish posts on LinkedIn, share blog articles, or tweet, AI algorithms review them along with the hashtags and may reshare, retweet, or add them to relevant newsfeeds.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Financial trading bots may act on news published by reputable financial outlets regarding a company's results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Perhaps the financial article may have been written, assisted by a language model like ChatGPT, just like business proposals, formal and informal emails.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI algorithms generate product recommendations, AI-powered recruitment bots screen job applications, and advertising bots target our social media usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Chatbots offer AI-based customer support, Dall-E creates product images, and AI is winning art competitions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reality of an &lt;strong&gt;AI-based neuralink&lt;/strong&gt; is already here, and it is conceivably not incorrect to say; &lt;strong&gt;business is conducted at the speed of AI&lt;/strong&gt;, not speed of human interactions.&lt;/p&gt;

</description>
      <category>devto</category>
      <category>web3</category>
      <category>cryptocurrency</category>
      <category>crypto</category>
    </item>
    <item>
      <title>Key points of Consistent Hashing</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Tue, 10 May 2022 03:52:13 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/key-points-of-consistent-hashing-2nef</link>
      <guid>https://dev.to/vidyabhandary/key-points-of-consistent-hashing-2nef</guid>
      <description>&lt;h3&gt;
  
  
  Key points of Consistent Hashing
&lt;/h3&gt;

&lt;p&gt;The key to understand Consistent Hashing is to understand the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;We not only hash the key IDs but also the server/node IDs&lt;/strong&gt;. Modulo hashing works well for a fixed number of servers. However in reality servers can go down and become unavailable; so a fixed number of servers cannot be assumed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Server IDs are hashed to a fixed range. The key IDs are also hashed to the same fixed range. Can imagine this range to be like a circle.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The key IDs are then routed to the closest server in the clockwise direction (It can be anticlockwise as well, as long as the same direction is used for all the keys).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, only a single hashing algorithm need not be used. We can use multiple hashing algorithms to make the servers spread out across the circle. Thus the load can be distributed in a better manner.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Ref:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://tech.endeepak.com/blog/2021/09/22/visual-simulation-of-consistent-hashing/"&gt;Visual simulation of consistent hashing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=zaRkONvyGr8"&gt;What is Consistent Hashing and Where is it used?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devops</category>
      <category>design</category>
      <category>systems</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Book Review - Learning React - 2nd Edition by Alex Banks and Eve Porcello</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Thu, 23 Dec 2021 10:14:52 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/book-review-learning-react-2nd-edition-by-alex-banks-and-eve-porcello-2j9o</link>
      <guid>https://dev.to/vidyabhandary/book-review-learning-react-2nd-edition-by-alex-banks-and-eve-porcello-2j9o</guid>
      <description>&lt;h3&gt;
  
  
  Book Review - Learning React - 2nd Edition by Alex Banks and Eve Porcello
&lt;/h3&gt;

&lt;p&gt;I enjoyed learning from this book but overall I got the feeling that the authors lost steam towards the end and were trying to complete the book in a hurry before the deadline.&lt;/p&gt;

&lt;p&gt;The 2nd chapter in this book that deals Javascript basics one needs to know for learning React is extremely good.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Based on latest React framework&lt;/li&gt;
&lt;li&gt;Very well explained Javascript basics chapter&lt;/li&gt;
&lt;li&gt;Covers all major parts of learning React &lt;/li&gt;
&lt;li&gt;Hooks and State management explained very well&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Suspense&lt;/em&gt; which is still experimental has been addressed&lt;/li&gt;
&lt;li&gt;Code examples are very good&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Would have preferred incremental single project approach. To some extent this has been addressed but not completely&lt;/li&gt;
&lt;li&gt;Many files are missing in the github repo - Socket.io example, GraphQL files, Chapter 10 files, Parallel requests example etc.&lt;/li&gt;
&lt;li&gt;Code examples should always mention which file they are referring to in github&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Overall&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A very good book to learn fundamentals of React, State management and Hooks. It can be a supplement to other streams of learning not a single source of learning.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>books</category>
      <category>webdev</category>
    </item>
    <item>
      <title>#100DaysOfCode Challenge</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Tue, 11 May 2021 16:39:59 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/100daysofcode-challenge-1c35</link>
      <guid>https://dev.to/vidyabhandary/100daysofcode-challenge-1c35</guid>
      <description>&lt;h3&gt;
  
  
  100 Days Of Code Github Wall
&lt;/h3&gt;

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

&lt;p&gt;&lt;strong&gt;My experience with the #100DaysOfCode Challenge&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Motivation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I decided to try the #100DaysOfCode Challenge for a couple of reasons. &lt;br&gt;
First, to see how I would manage this and secondly to complete items that were languishing due to low motivation.&lt;/p&gt;

&lt;p&gt;I did not tweet daily as is generally recommended. For me the public motivation / goal does not appeal. &lt;br&gt;
I also decided to finish my incomplete items first. And only then start anything new.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Complete&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Started and Completed - &lt;em&gt;'Data Cleaning Cookbook'&lt;/em&gt; by Michael Walker&lt;/li&gt;
&lt;li&gt;Completed - &lt;em&gt;'Automate the boring stuff'&lt;/em&gt; by AI Sweigart &lt;/li&gt;
&lt;li&gt;Python course in Udemy&lt;/li&gt;
&lt;li&gt;100+ Python Exercises &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Strictly does not fall into the coding challenge but I thought it relevant all the same.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Completed Google Cloud Sprint course in Coursera &lt;/li&gt;
&lt;li&gt;LinkedIn Assessments - 4&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learnt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pros&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Definitely works. Nothing like not wanting to miss the streak in the github profile as motivation !&lt;/li&gt;
&lt;li&gt;Was able to complete every item that had just been pending for no reason other than low motivation&lt;/li&gt;
&lt;li&gt;A very good experience, gives a confidence boost along with a sense of accomplishment&lt;/li&gt;
&lt;li&gt;If do-not-break-the-streak or chain works for you, this challenge is highly recommended&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cons&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I believe in complete digital detoxification for one day during the week / fortnight. Obviously, this could not happen with the #100DaysOfCode challenge&lt;/li&gt;
&lt;li&gt;Very easy to just go through the motions if fatigued&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100daysofcode</category>
      <category>python</category>
      <category>books</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Mandelbrot and Julia - Mathematical visualization and beauty</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Wed, 20 Jan 2021 08:32:53 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/mandelbrot-and-julia-mathematical-visualization-and-beauty-4j9o</link>
      <guid>https://dev.to/vidyabhandary/mandelbrot-and-julia-mathematical-visualization-and-beauty-4j9o</guid>
      <description>&lt;p&gt;I have been fascinated by the idea of chaos theory since I read about the butterfly effect. I read some more about it in the book 'Chaos' by James Gleick including about the Mandelbrot. But until I read 'Make your own Mandelbrot' by Tariq Rashid I did not realize just how simple the equation to draw the Mandelbrot was.&lt;/p&gt;

&lt;p&gt;This is the innocuous looking equation that generates the awesome Mandelbrot Set.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--111uqYFB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o3zarr84p1bdw8jcofqn.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--111uqYFB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o3zarr84p1bdw8jcofqn.PNG" alt="Alt Text" width="786" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A slight change in the input to the same equation will give the Julia set. It gives rise to a complicated boundary that reveals a recursive aspect; there are many smaller sized Mandelbrot one can see as one zoom's in.&lt;/p&gt;

&lt;p&gt;To learn more - look at this video - &lt;a href="https://www.youtube.com/watch?v=FFftmWSzgmk"&gt;"What's so special about the Mandelbrot Set?"&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I used the code from the book (python) to get the Mandelbrot set and the Julia set. I also got to see the 3D surface close ups (after smoothing).&lt;/p&gt;

&lt;h3&gt;
  
  
  MandelBrot 3D
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YTFxlKiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/at8fh0zpi8pi2ip9i4wl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YTFxlKiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/at8fh0zpi8pi2ip9i4wl.PNG" alt="MandelBrot 3D" width="880" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Julia 3D
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ymbPVkdc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3tqvh2jo5novyjz1uks8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ymbPVkdc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3tqvh2jo5novyjz1uks8.PNG" alt="Julia 3D" width="880" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the fun of the Mandelbrot is when one can zoom in and see the beautiful patterns interactively.&lt;/p&gt;

&lt;p&gt;After a bit of search (and multiple tries), I was able to finalize on JavaScript code works reasonably without needing specific libraries or frameworks or threads. I also improved on the color palette, to get brightly colored areas to observe the beauty of the mathematical patterns.&lt;/p&gt;

&lt;p&gt;Following is the core of the Mandelbrot code. This calculates the value of the function for a maximum number of iterations.&lt;/p&gt;

&lt;h3&gt;
  
  
  MandelBrot Code
&lt;/h3&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
Ref : &lt;a href="https://rembound.com/articles/drawing-mandelbrot-fractals-with-html5-canvas-and-javascript"&gt;https://rembound.com/articles/drawing-mandelbrot-fractals-with-html5-canvas-and-javascript&lt;/a&gt;

&lt;h3&gt;
  
  
  Julia Code
&lt;/h3&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
Ref : &lt;a href="https://rosettacode.org/wiki/Julia_set"&gt;https://rosettacode.org/wiki/Julia_set&lt;/a&gt;

&lt;h3&gt;
  
  
  Color Palette Code
&lt;/h3&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
Ref : &lt;a href="https://rosettacode.org/wiki/Julia_set"&gt;https://rosettacode.org/wiki/Julia_set&lt;/a&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;Using &lt;code&gt;mousedown&lt;/code&gt; to zoom in, &lt;code&gt;ctrl&lt;/code&gt; to zoom out and &lt;code&gt;shift&lt;/code&gt; to pan in the Mandelbrot and Julia results, the images (converted to gifs) is shown below.&lt;/p&gt;

&lt;p&gt;Links to the live demo are also mentioned at the end of the post.&lt;/p&gt;

&lt;h4&gt;
  
  
  Mandelbrot gif
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OcAtGIXL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dlp2ryn8m5px7bkoys0b.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OcAtGIXL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dlp2ryn8m5px7bkoys0b.gif" alt="Mandelbrot gif" width="880" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Julia gif
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu2UhJCv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dd0blf5rq2pmqq8oodkg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wu2UhJCv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dd0blf5rq2pmqq8oodkg.gif" alt="Julia gif" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mandelbrotset.netlify.app/"&gt;Live Demo - Mandelbrot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://juliaset.netlify.app/"&gt;Live Demo - Julia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vidyabhandary/mandelbrot"&gt;Full Code Mandelbrot in JS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vidyabhandary/julia"&gt;Full Code Julia in JS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vidyabhandary/mandelbrot_julia/blob/main/mandel/3d_mandel.ipynb"&gt;Python notebook with 3D images - Mandelbrot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vidyabhandary/mandelbrot_julia/blob/main/mandel/3d_julia.ipynb"&gt;Python notebook with 3D images - Julia&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Make your own Mandelbrot - Tariq Rashid 
&lt;/h4&gt;

&lt;p&gt;If you don't know programming or mathematics, and want to start from scratch to understand the concept behind Mandelbrot in clear, simple and step-by-step manner, this book is great. Short (only ~130 pages), with plenty of illustrations, easy to grasp. Its only con is that the code is in Python 2.7.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;a href="https://rembound.com/articles/drawing-mandelbrot-fractals-with-html5-canvas-and-javascript"&gt;HTML5 Canvas and Javascript&lt;/a&gt; - Main resource for the javascript code for zoom and pan function. 
&lt;/h4&gt;

&lt;h4&gt;
  
  
  3. &lt;a href="https://rosettacode.org/wiki/Julia_set"&gt;Color palette&lt;/a&gt; - Simplest color palette code for a wide range of colors
&lt;/h4&gt;

&lt;h4&gt;
  
  
  4. &lt;a href="http://paulbourke.net/fractals/juliaset/"&gt;Various values of C for Julia sets&lt;/a&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  5. &lt;a href="https://dev.to/foqc/mandelbrot-set-in-js-zoom-in-2hmc"&gt;Color Inspiration&lt;/a&gt;
&lt;/h4&gt;

</description>
      <category>javascript</category>
      <category>python</category>
      <category>mandelbrot</category>
      <category>julia</category>
    </item>
    <item>
      <title>Book Review - Building Machine Learning Powered Applications </title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Tue, 12 Jan 2021 10:50:49 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/book-review-building-machine-learning-powered-applications-59c9</link>
      <guid>https://dev.to/vidyabhandary/book-review-building-machine-learning-powered-applications-59c9</guid>
      <description>&lt;p&gt;Book Review - Building Machine Learning Powered Applications by Emmanuel Ameisen&lt;/p&gt;

&lt;p&gt;I found this book a bit frustrating to follow. &lt;/p&gt;

&lt;p&gt;Wherever the code is shown in the book and a link provided - it is to the main github repo and not to the individual jupyter notebook or python code. Nor was the filename mentioned beneath the code snippet.&lt;/p&gt;

&lt;p&gt;Not a deal breaker but it is &lt;em&gt;frustrating.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Covers a lot of theory on building a machine learning application&lt;/li&gt;
&lt;li&gt;You build a ML Editor that gives recommendations &lt;/li&gt;
&lt;li&gt;Important concepts are illustrated in specific notebooks&lt;/li&gt;
&lt;li&gt;Incremental changes to the model for better results&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;More theory, less code&lt;/li&gt;
&lt;li&gt;Light on deployment details&lt;/li&gt;
&lt;li&gt;Book links point only to the main repo and not the specific file with the code &lt;/li&gt;
&lt;li&gt;Not all tied together (filter models / tests). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/vidyabhandary/BuildML"&gt;My github repo&lt;/a&gt; - It contains the chapter numbers in the filenames.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some images from the final built machine learning app with recommendations.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  1. Main page of ML Editor
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fxfvZSB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ez0x5i4jmvaaikwvlq9x.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fxfvZSB0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ez0x5i4jmvaaikwvlq9x.PNG" alt="ml1" width="880" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Model V1 - Sample Question
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OLpYKqcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6cyd0km2lwystro7kybb.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OLpYKqcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6cyd0km2lwystro7kybb.PNG" alt="ml2" width="880" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Model V1 - Readability score
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LsXPsnRZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fxcxii0pn54wa3kw5hwi.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LsXPsnRZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fxcxii0pn54wa3kw5hwi.PNG" alt="ml3" width="880" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Model V2 - Sample Question
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wjS0QvF9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6knw706al7n1wxe901o5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wjS0QvF9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6knw706al7n1wxe901o5.PNG" alt="ml4" width="880" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Model V2 - Question Score
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zO-Na7Yx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ws1hxi7wnipp1fm04i0f.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zO-Na7Yx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ws1hxi7wnipp1fm04i0f.PNG" alt="ml5" width="880" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Model V3 - Sample Question
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QMbMXjRX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zfjnjop487k1oey3yj0v.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QMbMXjRX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zfjnjop487k1oey3yj0v.PNG" alt="ml6" width="880" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Model V3 - Detailed Recommendations
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sHaJWzR0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/08ckj3y1q0j61w971nyx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sHaJWzR0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/08ckj3y1q0j61w971nyx.PNG" alt="ml7" width="880" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Model V3 - Another Recommendation example (Copied from writers.stackexchange.com)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sbqD-b70--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fen7zowjp73domkel2jf.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sbqD-b70--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fen7zowjp73domkel2jf.PNG" alt="ml8" width="880" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>books</category>
      <category>machinelearning</category>
      <category>nlp</category>
      <category>flask</category>
    </item>
    <item>
      <title>Book Review — Grokking Algorithms by Aditya Bhargava</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Wed, 30 Dec 2020 07:55:41 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/book-review-grokking-algorithms-by-aditya-bhargava-1pmm</link>
      <guid>https://dev.to/vidyabhandary/book-review-grokking-algorithms-by-aditya-bhargava-1pmm</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---jbwl93b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z7tfu2hghx3ul9b5a9zb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---jbwl93b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/z7tfu2hghx3ul9b5a9zb.png" alt="Alt Text" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Book Review — Grokking Algorithms by Aditya Bhargava
&lt;/h3&gt;

&lt;p&gt;The word &lt;em&gt;'grokking'&lt;/em&gt; refers to &lt;em&gt;'understand (something) intuitively or by empathy'&lt;/em&gt; and it is the intuition part that this book attempts to impart via some really awesome illustrations.&lt;/p&gt;

&lt;p&gt;First off - this is not a book for people who have completed Computer Science or have learnt algorithms. However it IS a wonderful book for beginners or as is mentioned on the cover &lt;em&gt;'for curious people'&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The chapter on dynamic programming alone makes this book highly worth reading. &lt;/p&gt;

&lt;h3&gt;
  
  
  Pros -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Very easy to understand and grasp the underlying intuition &lt;/li&gt;
&lt;li&gt;Everyday relatable examples of the algorithm usage&lt;/li&gt;
&lt;li&gt;The high quality illustrations &lt;/li&gt;
&lt;li&gt;Written in a fun and engaging manner so easy to dive in and keep reading&lt;/li&gt;
&lt;li&gt;Chapters are independent, so can pick without needing to read in sequence &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Minimal algorithms covered and in less depth&lt;/li&gt;
&lt;li&gt;Not a substitute for the more formal books in this area&lt;/li&gt;
&lt;li&gt;Will not help you master algorithms. This book is to start the journey into algorithms&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>algorithms</category>
      <category>books</category>
      <category>python</category>
    </item>
    <item>
      <title>Minimalist self-updating Github profile README</title>
      <dc:creator>Vidya</dc:creator>
      <pubDate>Tue, 29 Sep 2020 06:54:06 +0000</pubDate>
      <link>https://dev.to/vidyabhandary/minimalist-self-updating-github-profile-readme-1i14</link>
      <guid>https://dev.to/vidyabhandary/minimalist-self-updating-github-profile-readme-1i14</guid>
      <description>&lt;p&gt;Github's new profile readme is all the rage right now. However I wanted something simple, clean, minimalist and entirely within the Github ecosystem. &lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a self-updating profile readme helped me -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start a technical blog and TIL blog within Github itself&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Retrieve relevant information from within Github ecosystem (no separate blog needed)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This self-updating readme has been inspired from the work  at &lt;br&gt;
&lt;a href="https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/" rel="noopener noreferrer"&gt;Building a self-updating profile README for GitHub&lt;/a&gt; by &lt;a href="https://github.com/simonw" rel="noopener noreferrer"&gt;Simon Willison&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Following are my steps towards creating the self-updating profile readme.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Create a technical blog within Github
&lt;/h3&gt;

&lt;p&gt;I used the Github Learning Lab for &lt;a href="https://lab.github.com/githubtraining/github-pages" rel="noopener noreferrer"&gt;GitHub Pages&lt;/a&gt; to learn how to create a blog with Github. The lab got me up to speed very quickly.&lt;/p&gt;

&lt;p&gt;I chose the simple look of &lt;code&gt;minima&lt;/code&gt; theme with the &lt;code&gt;solarized-dark&lt;/code&gt; skin. &lt;a href="https://vidyabhandary.github.io/blog" rel="noopener noreferrer"&gt;How it looks&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Create a TIL repo within Github
&lt;/h3&gt;

&lt;p&gt;This blog was to retain snippets of 'Today-I-learned'. I used the same approach as for creating the technical blog. Used the basic &lt;code&gt;Minimal&lt;/code&gt; theme for its clean design. &lt;a href="https://vidyabhandary.github.io/TIL" rel="noopener noreferrer"&gt;How it looks&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Self-Updating the readme for the TIL repo using Github actions.
&lt;/h3&gt;

&lt;p&gt;This is to update the repo whenever a new TIL is added. The count of the total number of TILs is also updated.&lt;/p&gt;

&lt;p&gt;The following files from the &lt;a href="https://github.com/vidyabhandary/TIL" rel="noopener noreferrer"&gt;repo&lt;/a&gt; are needed to self-update the readme.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;requirements.txt&lt;/code&gt; &lt;em&gt;(No change required)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;update_readme.py&lt;/code&gt; &lt;em&gt;(No change required)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;README.md&lt;/code&gt; &lt;em&gt;(Personalize this)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;build_database.py&lt;/code&gt; &lt;em&gt;(Personalize the url shown below)&lt;/em&gt;
```python
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;url = "&lt;a href="https://github.com/vidyabhandary/til/blob/master/%7B%7D%22.format(path)" rel="noopener noreferrer"&gt;https://github.com/vidyabhandary/til/blob/master/{}".format(path)&lt;/a&gt;&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Create a manual workflow using Github actions
This will create a `./github/workflows` directory with a `main.yml` file.
Can rename this to `build.yml` or retain the existing name.
Update with code from [build.yml](https://github.com/vidyabhandary/TIL/blob/master/.github/workflows/build.yml).

## And finally ...

### 4. Create a repo with the same name as your Github ID
This is the special repository. Its README.md will appear on your public profile!

### 5. Self-updating read-me for the Github profile.
The following files from the [repo](https://github.com/vidyabhandary/vidyabhandary) are required to
create the self-updating read-me for Github.

- `requirements.txt` *(No change required)*
- `README.md` *(Personalize this)*
- `build_readme.py` *(Personalize the urls shown below)*

```python


til_readme = "https://raw.githubusercontent.com/vidyabhandary/TIL/master/README.md"
entries = feedparser.parse("https://vidyabhandary.github.io/blog/feed.xml")["entries"]


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Create a manual workflow using Github actions
This will create a &lt;code&gt;./github/workflows&lt;/code&gt; directory with a &lt;code&gt;main.yml&lt;/code&gt; file.
Update with code from &lt;a href="https://github.com/vidyabhandary/vidyabhandary/blob/master/.github/workflows/main.yml" rel="noopener noreferrer"&gt;main.yml&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  And that's it !!!!
&lt;/h3&gt;

&lt;p&gt;You now have a self-updating profile readme in Github that updates once a day with your blog posts and TILs.&lt;/p&gt;

&lt;h5&gt;
  
  
  The final look - &lt;a href="https://github.com/vidyabhandary" rel="noopener noreferrer"&gt;https://github.com/vidyabhandary&lt;/a&gt;
&lt;/h5&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft04rgfck3qr6l7jc0jmf.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft04rgfck3qr6l7jc0jmf.png" alt="Github Readme"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>showdev</category>
      <category>wecoded</category>
      <category>womenintech</category>
    </item>
  </channel>
</rss>
