<?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: Ashwini Manoj</title>
    <description>The latest articles on DEV Community by Ashwini Manoj (@ashwinimanoj).</description>
    <link>https://dev.to/ashwinimanoj</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%2F152157%2Ff9eb9f1c-5543-4d19-9655-0209e2c970ab.jpeg</url>
      <title>DEV Community: Ashwini Manoj</title>
      <link>https://dev.to/ashwinimanoj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashwinimanoj"/>
    <language>en</language>
    <item>
      <title>frameworks</title>
      <dc:creator>Ashwini Manoj</dc:creator>
      <pubDate>Wed, 10 Jun 2020 12:09:28 +0000</pubDate>
      <link>https://dev.to/ashwinimanoj/framework-1ia4</link>
      <guid>https://dev.to/ashwinimanoj/framework-1ia4</guid>
      <description>&lt;p&gt;It all started with the Django Web Framework, in the first week of my first job, I was introduced to it. I was supposed to be a "full stack developer" starting from level 0. Django showed me how templates can be used to render html and it also showed me how creating and authenticating users were just a few commands away. Django did it all and I just had to find out what I had to make it do. It was simple! Until we decided to build our own SSO service. &lt;/p&gt;

&lt;p&gt;Flask, the micro web framework, seemed like an ideal choice. Especially because we did not want to be told what to do all the time, we wanted to do some crazy work ourselves! So we wrote our own authentication service, used it in the new flask projects. Very simple to integrate. And then we decided to use the sso service in our django project. It was no small feat to take out the Django provided AuthMiddleware to replace it with our CustomMiddleware. I remember sweating bullets while debugging to see how my django app talked to my sso service to figure out where things were going wrong and I was finally able to put out the fire. We had been using django admin to manage users, and I had to completely remove that and get our sso in place. It was a crazy week but we did it!&lt;/p&gt;

&lt;p&gt;Next, there was a small stint with node and express, but it was a small enough project that I did not have to dig deep into either. To me, it was just another framework that did not make my life too difficult.&lt;/p&gt;

&lt;p&gt;And then, I joined a new organisation. I was introduced to Spring. Introduced is putting it mildly, I was dipped into it with no warning. I had to find a way to keep afloat while not knowing to swim in these waters! Ah, the struggle. Spring was opinionated, and I had to get to know its opinion fast! I spent a lot of time trying to understand it (I like to think I have succeeded a bit here!). The struggle was real. Beans everywhere! I am surprised it did not haunt my dreams. I finally experienced and understood different ways of autowiring, creating configurations, repositories, singleton beans and testing them all. Had a good rhythm going on actually.&lt;/p&gt;

&lt;p&gt;And last week, I started on a project that primarily uses go. And for the first time in my career, we are not gonna be using a framework. Something to do with the philosophy of go. I guess in the end it boils down to &lt;code&gt;Keep it simple, silly!&lt;/code&gt;. I must say things seem way more clear now, especially with how middlewares are called, wrapping up handlers sequentially and calling the top most handler to the inner most. Such clarity! It's a little scary as well. But like I said, philosophy! I used to think ignorance is bliss, until I had to customise things (that also included improve certain things)! Abstraction helps to some extend, but one thing I have learned it's gonna be beneficial to see what's under the hood. There are so many patterns being followed for various problems, it's quite interesting. And it's only by taking a look can you understand why something is used, and hopefully you might even be able to say what could be done better! &lt;/p&gt;

&lt;p&gt;I have just started my journey in a world without a official framework, I am excited to see what more I'll get to learn and do! &lt;/p&gt;

</description>
      <category>framework</category>
      <category>python</category>
      <category>go</category>
      <category>java</category>
    </item>
    <item>
      <title>TIL where to find tomcat in Mac when installed through homebrew</title>
      <dc:creator>Ashwini Manoj</dc:creator>
      <pubDate>Sun, 24 Nov 2019 14:37:40 +0000</pubDate>
      <link>https://dev.to/ashwinimanoj/til-where-to-find-tomcat-in-mac-when-installed-through-homebrew-2e4a</link>
      <guid>https://dev.to/ashwinimanoj/til-where-to-find-tomcat-in-mac-when-installed-through-homebrew-2e4a</guid>
      <description>&lt;p&gt;I was trying to setup Apache Tomcat as a server on Eclipse and here is what I did.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Installed Tomcat through homebrew: &lt;code&gt;brew install tomcat&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To view the directory of the brew package: &lt;code&gt;brew ls tomcat&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Specify the path in Tomcat installation directory on eclipse: &lt;code&gt;/usr/local/Cellar/tomcat/9.0.29/libexec&lt;/code&gt;&lt;br&gt;
(Note: When I tried &lt;code&gt;/usr/local/Cellar/tomcat/9.0.29/&lt;/code&gt; eclipse kept telling me &lt;code&gt;Unknown version of Tomcat was specified.&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Shoutout to this &lt;a href="https://stackoverflow.com/questions/38030519/how-to-find-out-which-folder-tomcat-is-installed-by-brew-on-macos"&gt;stackoverflow question&lt;/a&gt; whose answers helped me today!&lt;/p&gt;

</description>
      <category>mac</category>
      <category>tomcat</category>
    </item>
    <item>
      <title>TIL about formatted strings that was introduced in Python 3.6</title>
      <dc:creator>Ashwini Manoj</dc:creator>
      <pubDate>Fri, 01 Nov 2019 17:39:39 +0000</pubDate>
      <link>https://dev.to/ashwinimanoj/til-about-formatted-strings-that-was-introduced-in-python-3-6-3pmo</link>
      <guid>https://dev.to/ashwinimanoj/til-about-formatted-strings-that-was-introduced-in-python-3-6-3pmo</guid>
      <description>&lt;p&gt;If you want an easy way to format strings, using formatted strings would be a good way to go! I came across it &lt;a href="https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498"&gt;here&lt;/a&gt; when trying to refactor an old code of mine from python2 to python3.&lt;/p&gt;

&lt;p&gt;Here's how I was doing string manipulation when I first started off with python:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;val = 'This ' + str(a) + ' here multiplied by ' + str(b) + ' = ' + str(a*b)&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;And now I have learned to do this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;val = f'This {a} here multiplied by {b} = {a*b}'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So much easier to read!&lt;/p&gt;

</description>
      <category>python</category>
      <category>string</category>
      <category>formatting</category>
    </item>
    <item>
      <title>Making my first contribution to an open source project</title>
      <dc:creator>Ashwini Manoj</dc:creator>
      <pubDate>Sat, 19 Oct 2019 06:51:38 +0000</pubDate>
      <link>https://dev.to/ashwinimanoj/making-my-first-contribution-to-an-open-source-project-4lck</link>
      <guid>https://dev.to/ashwinimanoj/making-my-first-contribution-to-an-open-source-project-4lck</guid>
      <description>&lt;p&gt;I feel so elated right now! I came across this project, a benchmark runner for OrbitDB. To be frank, I actually came across this issue when I was looking for a repo I could contribute to, as part of the Hacktoberfest that’s being run by DigitalOcean. This was going to be my first official PR and I felt adding tests would be something I could start with.&lt;/p&gt;

&lt;p&gt;It was not as easy as I expected. I added Mocha as the testing framework (I was so used to Jest and Jasmine before this), with SinonJS for mocks/stubs and ChaiJS for better assertion statements. But the main challenge was figuring out how to test cli commands. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;yargs&lt;/code&gt; is a nodejs library that helps in building command line tools. I had no clue how to go about testing it. I looked around the web and was finally able to figure out how to go about it. &lt;/p&gt;

&lt;p&gt;You can see what I have done here:&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/orbitdb/benchmark-runner/pull/5"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--qF2jUiUG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-6a5bca60a4ebf959a6df7f08217acd07ac2bc285164fae041eacb8a148b1bab9.svg"&gt;
      &lt;span class="issue-title"&gt;
        Add  Testing Framework with tests
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#5&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/ashwinimanoj"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZlAkzvhF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/2707831%3Fv%3D4" alt="ashwinimanoj avatar"&gt;
      &lt;/a&gt;
      &lt;span class="arrow-left-outer"&gt;&lt;/span&gt;
      &lt;span class="arrow-left-inner"&gt;&lt;/span&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/ashwinimanoj"&gt;ashwinimanoj&lt;/a&gt;
        &lt;/strong&gt; commented on &lt;a href="https://github.com/orbitdb/benchmark-runner/pull/5"&gt;Oct 04, 2019&lt;/a&gt;&lt;span class="timestamp"&gt;&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Added Mocha as testing framework and SinonJS for mocks and stubs.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/orbitdb/benchmark-runner/pull/5"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Let me know what you think about this. I would also love to know how you made your first contribution to open source! &lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>pr</category>
      <category>devjournal</category>
    </item>
  </channel>
</rss>
