<?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 Dhruv Batheja on Medium]]></title>
        <description><![CDATA[Stories by Dhruv Batheja on Medium]]></description>
        <link>https://medium.com/@dhruvbatheja?source=rss-5fa40e8a5055------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*Vwk4x9xSEi5qbpUv.</url>
            <title>Stories by Dhruv Batheja on Medium</title>
            <link>https://medium.com/@dhruvbatheja?source=rss-5fa40e8a5055------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 12:15:14 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@dhruvbatheja/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[GSOC 2018 with CloudCV’s EvalAI ]]></title>
            <link>https://medium.com/@dhruvbatheja/gsoc-2018-with-cloudcvs-evalai-c02bdb49aba6?source=rss-5fa40e8a5055------2</link>
            <guid isPermaLink="false">https://medium.com/p/c02bdb49aba6</guid>
            <category><![CDATA[google-summer-of-code]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[computer-vision]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[gsoc]]></category>
            <dc:creator><![CDATA[Dhruv Batheja]]></dc:creator>
            <pubDate>Sat, 11 Aug 2018 18:22:42 GMT</pubDate>
            <atom:updated>2019-04-12T14:55:42.550Z</atom:updated>
            <content:encoded><![CDATA[<p>On April 23, 2018 the <a href="https://summerofcode.withgoogle.com/projects/#6444844956778496">results</a> of students selected for summer of code were announced. I was ecstatic 🕺 to be selected to contribute to <a href="https://cloudcv.org/">CloudCV’s</a> <a href="https://github.com/Cloud-CV/EvalAI">EvalAI</a> platform. The summer is coming to an end and this post will sum up my experience working with the talented team @ CloudCV. ☁️ I would like to thank my mentors 👨‍🏫 <a href="https://github.com/RishabhJain2018">Rishabh Jain</a>, <a href="https://github.com/deshraj">Deshraj Yadav</a>, <a href="https://github.com/shivaniprakash95">Shivani Prakash</a>, <a href="http://Akash Jain">Akash Jain</a> and <a href="https://github.com/spyshiv">Shiv Baran Singh</a> for all the guidance and support throughout the project.</p><h4>Some Background about EvalAI</h4><p>EvalAI is an open source answer to <a href="https://www.kaggle.com/">Kaggle</a>. It is a web application that helps researchers, students and data-scientists to create, collaborate and participate in various AI challenges organised round the globe. A lot of organisations like Google, Facebook, Carnegie Mellon University, Stanford University, Georgia Tech, Draper etc. already host their data science competitions and challenges on EvalAI. If you’d like to host your challenge on the platform, check out <a href="https://medium.com/@dhruvbatheja/host-your-own-data-science-competition-1c01373def70">this</a> Medium post or <a href="https://gist.github.com/live-wire/5bb90eb55715da8acd5b183694ee5c45">this</a> detailed gist I wrote to get your 👐 dirty.</p><h3>Goals 🥅</h3><p>I was selected to mostly contribute to the <a href="https://github.com/Cloud-CV/EvalAI-ngx">EvalAI-ngx</a> repository which is going to be the front-end of the EvalAI platform. The current EvalAI frontend is written in AngularJS. It was nice when it came out 7 years ago but typescript is the way to go to write maintainable code that doesn’t blow up during run-time.</p><p>My major task for this summer was to <strong>port the entire EvalAI website to Angular 5 (Typescript &amp; SCSS)</strong> and make the new code as modular as possible which makes addition of new features a cakewalk. The plan was to roll out the new front-end to production before the summer ends. My second task was to <strong>implement new analytics features in the Django API backend</strong>.</p><p>The functional website is production-ready and will be rolled out once the style finesse is achieved 😉 Keep an eye out for the new user-interface EvalAI users!</p><h3>Features Implemented 🖥 🖱</h3><h4>Static Pages</h4><ul><li>New Home Page (<em>Landing Page</em>) /</li><li>About us Page /about</li><li>Contact Us Page (with <em>Map View</em>) /contact</li><li>Get-Involved Page /get-involved</li><li>Privacy Policy Page (with <em>smart-scrolling</em>) /privacy-policy</li><li>404 Not-Found page (🌩) /404</li></ul><h4>Dynamic Pages</h4><ul><li>Authentication Page (with support for: <em>signUp, login, verify-email and email-verified</em>) /auth/login /auth/signup /auth/verify-email/:token</li><li>Profile Page (with support for: <em>update-password, update-profile, fetching authentication-token</em>) /profile</li><li>Challenges List Page (list of public and hosted challenges with <em>filters for upcoming, past and ongoing challenges</em>) /challenges/all /challenges/me</li><li>Teams Page (list of participant and host teams with <em>options for creating new teams, editing teams, adding members to teams and deleting teams</em>) /teams/participants /teams/hosts</li><li>Dashboard Page (Links for ongoing challenges and teams) /dashboard</li><li>Challenge Create Page (Zip Upload Page for Challenge-creation) /challenge-create</li><li>Challenge Detail Page (Challenge details page <em>with </em><strong><em>sub-pages</em></strong> <em>for</em> <em>displaying overview, phase details, evaluation criteria, participate-in-challenge, make-submissions, view-submissions and displaying leaderboard</em>) /challenge/&lt;id&gt;/overview /challenge/&lt;id&gt;/evaluation /challenge/&lt;id&gt;/phases /challenge/&lt;id&gt;/participate /challenge/&lt;id&gt;/submit /challenge/&lt;id&gt;/submissions /challenge/&lt;id&gt;/leaderboard <br>The submissions and leaderboard pages have <em>link embeddings everywhere so the selections can be shared in the form of URLs</em> like: /challenge/&lt;id&gt;/submissions/&lt;phase-id&gt;/&lt;submission-timestamp&gt; and /challenge/&lt;id&gt;/leaderboard/&lt;phase-split-id&gt;/&lt;team-name&gt;</li></ul><h4>Reusable Components</h4><ul><li><strong>Toast</strong> — A custom notification component which displays <em>success, error and info</em> messages from the platform to the user.</li><li><strong>Input</strong> —Stylish form item component for making it easy to build forms and validations with support for input types: <em>text, password, email and file</em>.</li><li><strong>Header</strong> — Responsive Navigation Header with jump links.</li><li><strong>Footer</strong> — Responsive Navigation Footer with jump links.</li><li><strong>Loading</strong> — Loading gif overlay component (used in API calls wrapper right now)</li><li><strong>Confirm</strong> — Typescript callable Confirm modal for confirming from the user before making the operation (like delete operations)</li><li><strong>Modal</strong> — Typescript callable custom Modal with form items to be submitted (like update operations)</li><li><strong>Forcelogin</strong> — Used on pages with sections which should only be accessible to logged-in users. Users are redirected to the correct page when they log in.</li><li><strong>EvalAI Specific Reusable Components:<br>- </strong><em>Select Phase Component</em> — This is a radio-card component in which only one phase can be selected at a time and a callback function is triggered whenever a phase is selected. (<em>used on challenge-submit, submissions and leaderboard pages</em>)<br>- <em>Card List Component</em> — This displays the list of challenges or teams (in the form of cards) based on the configuration. (<em>used on challenges and teams pages</em>)</li><li><strong>Services</strong> — To maximise reuse of code and functions, services like <em>apiService, authService, challengeService, endpointService, windowService, globalService</em> are employed.</li><li><strong>Modular SCSS</strong> — Separate files contain configs like all the<em> color schemes and mixins</em>. Global style classes are used for styling<em> buttons, tables, cards, modals, stylish-checkbox etc</em>.</li></ul><h3>Contributions 🐙</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/0*9jL6JD8WT6ysVjMA.gif" /><figcaption>Proof of action follows 🤖</figcaption></figure><h4>Pull Requests Merged</h4><ul><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/58">#PR-58</a> Surge Deployment Fix</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/60">#PR-60</a> Header Navigation Component</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/62">#PR-62</a> About Us Page</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/63">#PR-63</a> Get Involved Page</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/64">#PR-64</a> Privacy Policy Page</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/67">#PR-67</a> Compodoc Integration</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/68">#PR-68</a> Footer Component</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/70">#PR-70</a> Reusable Form Input Component</li><li><a href="https://github.com/Cloud-CV/EvalAI/pull/1755">#PR-1755</a> Leaderboard sorting fix</li><li><a href="https://github.com/Cloud-CV/EvalAI/pull/1574">#PR-1574</a> Documentation Improvement</li></ul><h4>Pull Requests in Review</h4><ul><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/90">#PR-90</a> This is a collective PR and contains all the latest un-merged changes.</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/71">#PR-71</a> Contact Page</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/74">#PR-74</a> Authentication Pages</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/77">#PR-77</a> Custom Toasts Component</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/84">#PR-84</a> Challenges List and Team Lists</li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/88">#PR-88</a> Challenge Detail Page with all sub-pages</li><li><a href="https://github.com/Cloud-CV/EvalAI/pull/1765">#PR-1765</a> EvalAI-ngx related auth handling changes in API</li><li><a href="https://github.com/Cloud-CV/EvalAI/pull/1765">#PR-1757</a> Leaderboard sorting fix with gulp issue resolution</li></ul><h4>Demo Staging URL</h4><p>If you can’t wait to try out the new UI, use <a href="https://pr-90-evalai.surge.sh/">this</a> link. To start using this demo link, <em>load unsafe scripts</em> from the address bar like <a href="https://live-wire.github.io/images/unsafe-scripts.gif"><em>this</em></a>. This page will have all the latest changes from the <a href="https://github.com/Cloud-CV/EvalAI-ngx/pull/90">collective PR</a>.</p><h3>TLDR Contributions:</h3><ul><li><a href="https://github.com/Cloud-CV/EvalAI/commits?author=live-wire">Cloud-CV/EvalAI</a></li><li><a href="https://github.com/Cloud-CV/EvalAI-ngx/commits?author=live-wire">Cloud-CV/EvalAI-ngx</a></li></ul><h3>Conclusion 🔚</h3><p>It was a wonderful summer with a steep learning curve. I got exposed to <em>Django, Angular-5, Docker</em> and the best coding practices. This summer of code has made me way more capable of working on a project <em>remotely</em>. I am totally satisfied with the response and help I received from the folks @ CloudCV. I look forward to keep contributing to the platform and help others do the same 😄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/0*1hNK-PtNUZRcfsCe" /><figcaption>JK! 😛 Post your doubts on our <a href="https://gitter.im/Cloud-CV/EvalAI?source=orgpage">gitter chat</a></figcaption></figure><p>Feel free to contact me 📲 if you need help in contributing to EvalAI or EvalAI-ngx.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c02bdb49aba6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Host your own Data science competition!]]></title>
            <link>https://medium.com/@dhruvbatheja/host-your-own-data-science-competition-1c01373def70?source=rss-5fa40e8a5055------2</link>
            <guid isPermaLink="false">https://medium.com/p/1c01373def70</guid>
            <category><![CDATA[cloudcv]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[digit-recogniser]]></category>
            <category><![CDATA[kaggle]]></category>
            <dc:creator><![CDATA[Dhruv Batheja]]></dc:creator>
            <pubDate>Sun, 18 Mar 2018 16:39:06 GMT</pubDate>
            <atom:updated>2019-07-16T00:49:04.885Z</atom:updated>
            <content:encoded><![CDATA[<p>We will use one of the most popular datasets in Machine Learning for this tutorial i.e. the <a href="http://yann.lecun.com/exdb/mnist/">MNIST</a> dataset. We are <strong>not </strong>going to use Kaggle to host our competition. What ? Why ?.</p><p>We are going to use something that claims to be better than Kaggle <br>😮 and is open source 🚀 🍻.</p><h3>Could this be the Kaggle Killer ? 🔥</h3><p>Us nerds can have different opinions about <a href="https://www.youtube.com/watch?v=SsoOG6ZeyUI">spaces and tabs</a>, but one thing we all agree on is : <strong>Open Source &gt; Proprietary.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/297/1*lZoy5KwlLMt_rQ9lIzZzDA.jpeg" /><figcaption>Open source &gt; Proprietary! Duh!</figcaption></figure><p>Presenting <a href="https://evalai.cloudcv.org/">EvalAI</a>, the open source answer to Kaggle. EvalAI is an open source web application that helps researchers, students and data-scientists to create, collaborate and participate in various AI challenges organised round the globe.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*afUam-Bwb4MU0cAIDOizvg.png" /></figure><p>EvalAI has a sick <a href="https://evalai.cloudcv.org/">landing page</a> and the platform continues to get better everyday because of active contributions from the community. I have high hopes for this project. Don’t forget to star their <a href="https://github.com/Cloud-CV/EvalAI">GitHub repository</a>!</p><h3><strong>Submitting the Challenge</strong></h3><p>Follow these steps to create a challenge on the EvalAI platform:</p><ul><li>Use the MNIST dataset available <a href="http://yann.lecun.com/exdb/mnist/">here</a>.</li><li>Create <em>Test and Train</em> splits from the dataset. You could make use of the sklearn’s <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html">train_test_split</a> for this. Check <a href="https://github.com/live-wire/EvalAI-Examples/blob/mnist-challenge/mnist_challenge/evaluation_script/Preparation.ipynb">this</a> notebook for a sample preparation.</li><li>Follow the instructions on this <a href="http://evalai.readthedocs.io/en/latest/challenge_creation.html">page</a> to create a basic outline for your challenge submission. The instructions are pretty clear and they use <em>yaml</em> configurations which are very easy to interpret.</li><li>Create your evaluation script. Follow instructions on <a href="http://evalai.readthedocs.io/en/latest/evaluation_scripts.html">this</a> page. Here is a <a href="https://github.com/live-wire/EvalAI-Examples/blob/mnist-challenge/mnist_challenge/evaluation_script/main.py">sample</a> evaluation script that I created for submitting the MNIST challenge. Check <a href="https://github.com/live-wire/EvalAI-Examples/blob/mnist-challenge/mnist_challenge/evaluation_script/Scoring.ipynb">this</a> notebook for trying out your scoring function before you add it to your evaluation script.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/150/1*QtteBDVQUumGKyfb43eeHg.jpeg" /><figcaption>Easy Peasy</figcaption></figure><ul><li>That’s it! Submit your zip on the platform and someone from the team will review and approve your submission before the challenge goes LIVE!.</li></ul><h3>Host the best model submission! 🏌🏻</h3><p>Every budding data scientist works on digit-recognition and then, that project disappears in the bunch of other projects he works on. I built this <a href="http://35.204.201.183:5001/">digit recognizer web app</a> to show off the project I did for my Pattern Recognition course. Did you check it out yet? CHECK IT OUT! It’s fun!</p><p>I used Python’s Flask for building the API and HTML-Canvas to enable self drawing of digits. You can use this <a href="https://github.com/live-wire/digits/blob/master/server.py">code</a> for building your own little UI 😉. Use the best submission model from your competition and host it 🚀</p><p>Suggestions ? Comments ? Criticism ? Everything is welcome!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1c01373def70" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Deep Learning! Where to start?]]></title>
            <link>https://medium.com/@dhruvbatheja/deep-learning-where-to-start-88a173336070?source=rss-5fa40e8a5055------2</link>
            <guid isPermaLink="false">https://medium.com/p/88a173336070</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[google-summer-of-code]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[deep-learning]]></category>
            <dc:creator><![CDATA[Dhruv Batheja]]></dc:creator>
            <pubDate>Fri, 02 Mar 2018 15:11:58 GMT</pubDate>
            <atom:updated>2018-03-02T23:47:55.491Z</atom:updated>
            <content:encoded><![CDATA[<h3>My First Blog post 🚀</h3><p>Hello Astronauts!</p><p>I’ve always wanted to own a technical blog, but I always had something better to do. (👇🏻 NOT REALLY 😐)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*aZ2MYOwPXKSXcJNtZ3kXyw.jpeg" /></figure><h3>Motivation</h3><p>As you might have guessed, I am a big time procrastinator like many of you out there and need deadlines to get any work done. Check out this hilarious ted talk by Tim Urban to feel better about yourself 🙈<a href="https://www.ted.com/talks/tim_urban_inside_the_mind_of_a_master_procrastinator">https://www.ted.com/talks/tim_urban_inside_the_mind_of_a_master_procrastinator</a></p><p>I was planning to apply for <a href="https://summerofcode.withgoogle.com/">Google’s Summer of Code 2018</a>. (You should too, if you’re a programmer and still in college). After going through the <a href="https://summerofcode.withgoogle.com/organizations/">list of projects</a>, I decided to try my luck with a couple of projects in <a href="https://summerofcode.withgoogle.com/organizations/4812284052897792/">Python Software Foundation</a>. This requires you to blog about your project.</p><p>So, here I am, getting my hands dirty with my first blog post.</p><h3>Is Deep Learning for you ?</h3><p>Let’s first talk about Machine Learning. Machine Learning is an intersection of <strong>Maths, Programming and The Domain</strong>(the problem being solved). I believe if you are good at any one of these three, it will be worthwhile to invest your time learning about the other two ✌️.</p><ul><li><strong><em>Want to refresh some Math ?</em></strong> Check out this neat <a href="https://www.youtube.com/watch?v=kjBOesZCoqc&amp;list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab">Linear Algebra series</a> by <a href="https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw">3Blue1Brown</a>. <a href="https://www.khanacademy.org/">https://www.khanacademy.org/</a> is always a good resource as well. It’s never too late to get started. Just watch one video a day by <a href="https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw">3Blue1Brown</a> for a few days and you’ll fall in love with Mathematics. <a href="https://www.youtube.com/watch?v=3d6DsjIBzJ4&amp;t=350s">Taylor Series</a> was another amazing video from the same publisher.</li><li><strong><em>Want to refresh/learn Python ? </em></strong>Python is my favourite language to work in and is so easy to pick up even for beginners. Check out <a href="https://developers.google.com/edu/python/">Google’s Python Class</a> if you’re brushing up, and <a href="https://eu.udacity.com/course/introduction-to-python--ud1110">Introduction to Python</a> if you’re a beginner.</li><li><strong><em>Want to know about Machine Learning ? </em></strong>Check out <a href="https://www.coursera.org/learn/machine-learning">Andrew Ng’s Coursera Machine Learning course</a>. I believe it is still the best starting point for anyone.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/461/1*-QghnBY157ENtOGhxJFg3g.png" /></figure><p>Deep learning is a subset of machine learning that involves <a href="https://www.youtube.com/watch?v=aircAruvnKk&amp;t=548s">Neural Networks</a>. “Deep Learning” is just a buzz-word. The best thing about Neural Networks is that it can approximately solve any problem that you can think about and can be applied on any domain without the need of proper domain knowledge in many cases. <em>(Note: Domain knowledge will almost always give you an edge)</em>. Most of the models just need a lot of training data.</p><p>One resource that I found really cool was Siraj Raval’s youtube channel. His videos are pretty concise and informative and hilarious(No BS!). Definitely check out his <a href="https://www.youtube.com/watch?v=vOppzHpvTiQ&amp;list=PL2-dafEMk2A7YdKv4XfKpfbTH5z6rEEj3">course</a>.</p><p><a href="https://www.kaggle.com/">Kaggle</a> is where you can find interesting problems, datasets and implement whatever you’ve learnt.</p><p>I will incrementally share my Deep Learning Coursework that we’re being taught at TU Delft by <a href="https://www.tudelft.nl/en/eemcs/the-faculty/departments/intelligent-systems/pattern-recognition-bioinformatics/pattern-recognition-bioinformatics-computer-vision-lab/people/jan-van-gemert/">Jan Van Gemert</a> as well. The book that we will follow for the course can be found <a href="https://drive.google.com/file/d/1rOobnatvF5zBVpLA0UbNhoaEWuQAUmVi/view?usp=sharing">here</a>.</p><blockquote>“Believe in yourself! 6 months for a skill that is shaping the world!”- Someone Smart</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/319/1*o7ZyK56N-oSan4cFYjJLTQ.png" /></figure><h3>Cheers! 🍺</h3><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=88a173336070" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>