<?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>Forem: Aditya Varma</title>
    <description>The latest articles on Forem by Aditya Varma (@adityavarma1234).</description>
    <link>https://forem.com/adityavarma1234</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%2F31203%2Fdb6f0cac-1c6c-428e-805e-b15d896347c2.png</url>
      <title>Forem: Aditya Varma</title>
      <link>https://forem.com/adityavarma1234</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/adityavarma1234"/>
    <language>en</language>
    <item>
      <title>Bypassing Recaptcha</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Fri, 15 Mar 2019 15:55:40 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/bypassing-recaptcha-5eab</link>
      <guid>https://forem.com/adityavarma1234/bypassing-recaptcha-5eab</guid>
      <description>&lt;p&gt;It was just like any other day I found myself thinking about any interesting projects to do in tech space. Then I thought it would be fun to bypass the bot detection systems present on the internet.&lt;/p&gt;

&lt;p&gt;I thought about building upon the prior work done by some one else to by pass the recaptcha. After searching for a bit, I came across an interesting paper &lt;a href="https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf"&gt;here&lt;/a&gt;. This paper primarily talks about &lt;a href="https://www.google.com/recaptcha/intro/v3.html"&gt;Google Recaptcha&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Google Recaptcha is widely used to detect bots on the internet. It has three behaviors when you click on the checkbox. It can behave as a simple checkbox i.e. it will simply allow you to perform the action like submitting the data without any further action required or it might think you are a bot therefore give you pictures to classify into groups which are pretty hard for any algorithm to actually solve machine learning included (they mostly give pictures to classify about street signs I am guessing for their self driving cars project or stores), it might give you texts as well with some obscurity like lines drawn here and there which are apparently discontinued because there are good machine learning algorithms out there which can solve this problem. &lt;/p&gt;

&lt;p&gt;In this paper they talked about the techniques that they have used to bypass the recaptcha with over 70 percent accuracy.&lt;/p&gt;

&lt;p&gt;They created a bot which initially would traverse random websites to seem like a legit user browsing the web, to get the token or the cookie to behave like it is from a valid users. They let it browse these websites for a couple of days (approximately 10 days).&lt;/p&gt;

&lt;p&gt;After this trial period they get into attacking mode on a website which has recaptcha to stop bots. When they tried attacking with this trial token they saw that it doesn't ask for harder stuff, instead it grants permission to the bot with out any extra hassle.&lt;/p&gt;

&lt;p&gt;Just think about it any one could have generated hundreds and thousands of such tokens with out any significant effort and attacked multiple websites to bypass their bot detection system.&lt;/p&gt;

&lt;p&gt;They tried with fresh tokens but recaptcha being smart detected their fraudulent activity and asked to solve a couple of hard AI problems discussed above. But these guys had found a pattern and where able to exploit it with more than 70 percent accuracy (You can read the paper above to get the details about how exactly they were able to accomplish this). The best professional paid service to bypass a bot detection out there has only about 50 percent accuracy. &lt;/p&gt;

&lt;p&gt;Being responsible individuals they have forwarded their research to Google so that they can improve their infrastructure.&lt;/p&gt;

&lt;p&gt;I have only scratched the surface of what the paper actually tells. You can check out the link above to read more about it.&lt;/p&gt;

&lt;p&gt;As for me after the reading it, I have decided to explore other interesting topics in tech space that I am missing out on (this is my first time reading a paper like this). If you have any cool papers in mind or suggestions please drop a comment below about it and why you thought it was interesting.&lt;/p&gt;

</description>
      <category>recaptcha</category>
      <category>bots</category>
      <category>papers</category>
      <category>exploit</category>
    </item>
    <item>
      <title>Apple push notifications</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Mon, 11 Mar 2019 14:50:57 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/apple-push-notifications-207g</link>
      <guid>https://forem.com/adityavarma1234/apple-push-notifications-207g</guid>
      <description>

&lt;p&gt;To send push notifications to any apple device using apns, I had to spend a considerable amount of time looking at all the alternatives available in python. Then i found an open source library &lt;a href="https://github.com/Pr0Ger/PyAPNs2"&gt;pyapns2&lt;/a&gt;. I had almost rejected this library when I was exploring because it did not say any where in the documentation that it supports batching or token based authentication. &lt;br&gt;
When I searched the source code, I was astonished to see that it had support for both but was not documented. &lt;/p&gt;

&lt;p&gt;So I updated the documentation and raised a &lt;a href="https://github.com/Pr0Ger/PyAPNs2/pull/75"&gt;pull request&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For any one who has been facing similar issues below is the example code on how to use the library.&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;apns2.client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;APNsClient&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;apns2.payload&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Payload&lt;/span&gt;

&lt;span class="n"&gt;token_hex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87'&lt;/span&gt;
&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Payload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sound&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;badge&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;topic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'com.example.App'&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;APNsClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'key.pem'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;use_sandbox&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;use_alternative_port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_notification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token_hex&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# To send multiple notifications in a batch
&lt;/span&gt;&lt;span class="n"&gt;Notification&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;namedtuple&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Notification'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'token'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'payload'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;notifications&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Notification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;token_hex&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_notification_batch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notifications&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;notifications&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# To use token based authentication
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;apsn2.credentials&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TokenCredentials&lt;/span&gt;

&lt;span class="n"&gt;auth_key_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'path/to/auth_key'&lt;/span&gt;
&lt;span class="n"&gt;auth_key_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'app_auth_key_id'&lt;/span&gt;
&lt;span class="n"&gt;team_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'app_team_id'&lt;/span&gt;
&lt;span class="n"&gt;token_credentials&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TokensCredentials&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth_key_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;auth_key_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth_key_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;auth_key_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;team_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;team_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;APNsClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;credentials&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;token_credentials&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;use_sanbox&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_notification_batch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notifications&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;notifications&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To learn about token based authentication you can have a look at this wonderful resource &lt;a href="http://gobiko.com/blog/token-based-authentication-http2-example-apns/"&gt;here&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;When I used &lt;code&gt;send_notification&lt;/code&gt; for sample token size of 2000 it took me around &lt;code&gt;10 minutes&lt;/code&gt; to send all the notifications. &lt;br&gt;
When I used &lt;code&gt;send_notification_batch&lt;/code&gt; for same sample token size it took less than &lt;code&gt;5 seconds&lt;/code&gt; to send out all the notifications.&lt;/p&gt;


</description>
      <category>python</category>
      <category>apns</category>
      <category>pushnotifications</category>
      <category>pyapns2</category>
    </item>
    <item>
      <title>Regex solution</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Wed, 16 Jan 2019 21:17:18 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/regex-solution-7ab</link>
      <guid>https://forem.com/adityavarma1234/regex-solution-7ab</guid>
      <description>&lt;p&gt;Problem Description: &lt;/p&gt;

&lt;p&gt;Regex needs to accepts all strings of type abc.xyz.mno, it should be composed of multiple strings all joined by '.'. The joined strings can only contain [a-z][0-9], even capital characters are not allowed. &lt;/p&gt;

&lt;p&gt;Valid cases&lt;/p&gt;

&lt;p&gt;abc.bcd.edsaf.asdfds&lt;br&gt;
abc.asdf123.1234adf&lt;br&gt;
abc.ad&lt;/p&gt;

&lt;p&gt;Invalid cases&lt;/p&gt;

&lt;p&gt;abc&lt;br&gt;
abc.&lt;br&gt;
abc.132A&lt;br&gt;
ASD&lt;br&gt;
1234&lt;br&gt;
1234ASF.&lt;/p&gt;

&lt;p&gt;The solution that I came up with is this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;^[a-z0-9]+\.[a-z0-9]([a-z0-9]*|\.[a-z0-9])+$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I am not sure whether this is the most efficient solution possible?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>regex</category>
      <category>python</category>
    </item>
    <item>
      <title>Scalability resources</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Wed, 08 Aug 2018 22:18:39 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/scalability-resources-5f9p</link>
      <guid>https://forem.com/adityavarma1234/scalability-resources-5f9p</guid>
      <description>&lt;p&gt;Few resources I know of to learn about scalability in web apps. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High scalability by Todd Hoff &lt;a href="http://highscalability.com/"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Scalability for dummies 4 part series &lt;a href="http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Storage scalability on interview bit &lt;a href="https://www.interviewbit.com/courses/system-design/topics/storage-scalability/#problems"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;System Design on interview bit &lt;a href="https://www.interviewbit.com/courses/system-design/"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please let me know in the comments if you know anything else. May be a good book that I can look into. But from my experience I can only learn this thing from experience.&lt;/p&gt;

</description>
      <category>scalability</category>
      <category>interview</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Aditya Varma, Launched Site</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Mon, 06 Aug 2018 00:00:00 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/aditya-varma-launched-site-3129</link>
      <guid>https://forem.com/adityavarma1234/aditya-varma-launched-site-3129</guid>
      <description>&lt;p&gt;I finally got around to create my own github page. Using the wonderful tutorial provided by Jonathan McGlone &lt;a href="http://jmcglone.com/"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Neat thing about it - powered by &lt;a href="http://jekyllyrb.com"&gt;Jekyll&lt;/a&gt; and I can use Markdown to author my posts. It actually is a lot easier than I thought it was going to be.&lt;/p&gt;

&lt;p&gt;Any one out there looking to create their own github page can find use this &lt;a href="http://jmcglone.com/guides/github-pages/"&gt;link&lt;/a&gt; to get things started. This is the easiest resource I have found on the web to get things started.&lt;/p&gt;

&lt;p&gt;I have even set up an rss feed &lt;a href="https://adityavarma1234.github.io/blog/atom.xml"&gt;here&lt;/a&gt; I am not even sure what that is. Need to go through the docs. Please comment if you know any good resources about this.&lt;/p&gt;

&lt;p&gt;I set up my rss feed to publish directly to dev.to&lt;/p&gt;

&lt;p&gt;I can simply blog on my github page and it will automatically be saved as draft here in dev.to just waiting for me to mark publish as true! It is only possible if you have set your rss feed option under settings, publishing from rss option. &lt;/p&gt;

&lt;p&gt;Source &lt;a href="http://jmcglone.com/guides/github-pages/"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now I can wait to set up the hacker theme for jekyll! &lt;/p&gt;

&lt;p&gt;Cheers. Thanks for reading. &lt;/p&gt;

</description>
      <category>githubpage</category>
      <category>jekyll</category>
      <category>rss</category>
    </item>
    <item>
      <title>uHunt 11727</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Sun, 05 Aug 2018 17:03:16 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/uhunt-11727-329k</link>
      <guid>https://forem.com/adityavarma1234/uhunt-11727-329k</guid>
      <description>

&lt;p&gt;Problem &lt;a href="http://uva.onlinejudge.org/external/117/11727.pdf"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solution &lt;a href="https://raw.githubusercontent.com/adityavarma1234/steve_halim_competitive_programming/master/chapter1/11727.cc"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can practice &lt;a href="http://uhunt.onlinejudge.org/id/877988"&gt;here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The problem level is super easy!&lt;/p&gt;

&lt;p&gt;You can find more about the book &lt;a href="https://cpbook.net/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do let me know if there is a better solution possible! &lt;/p&gt;


</description>
      <category>sportprogramming</category>
      <category>datastructures</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>uHunt 11498     </title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Sun, 05 Aug 2018 17:00:57 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/uhunt-11498------2gba</link>
      <guid>https://forem.com/adityavarma1234/uhunt-11498------2gba</guid>
      <description>

&lt;p&gt;Problem &lt;a href="http://uva.onlinejudge.org/external/114/11498.pdf"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solution &lt;a href="https://raw.githubusercontent.com/adityavarma1234/steve_halim_competitive_programming/master/chapter1/11498.cc"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know if there is a better approach to solve this problem!&lt;/p&gt;

&lt;p&gt;Category of the problem is super easy. Just right for beginners in sport programming! &lt;/p&gt;


</description>
      <category>sportprogramming</category>
      <category>algorithms</category>
      <category>datastructres</category>
    </item>
    <item>
      <title>Uhunt Solutions</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Sun, 05 Aug 2018 16:55:49 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/uhunt-solutions-1mcg</link>
      <guid>https://forem.com/adityavarma1234/uhunt-solutions-1mcg</guid>
      <description>

&lt;p&gt;I am posting my solutions in the hope that someone out there can find the solution if they are stuck or let me know if there is a better way to do this. &lt;/p&gt;

&lt;p&gt;Problem category is super easy!&lt;/p&gt;

&lt;p&gt;Problem 11172 &lt;a href="http://uhunt.onlinejudge.org/id/877988"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solution in c++ &lt;a href="https://raw.githubusercontent.com/adityavarma1234/steve_halim_competitive_programming/master/chapter1/11727.cc"&gt;link&lt;/a&gt;&lt;/p&gt;


</description>
      <category>sportprogramming</category>
      <category>datastructures</category>
      <category>uhunt</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>First open source contribution</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Thu, 02 Aug 2018 19:57:37 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/first-open-source-contribution-546b</link>
      <guid>https://forem.com/adityavarma1234/first-open-source-contribution-546b</guid>
      <description>

&lt;p&gt;I have just joined this wonderful community of developers &lt;a href="https://www.agileventures.org/"&gt;https://www.agileventures.org/&lt;/a&gt; and was looking for interesting projects to work on.&lt;/p&gt;

&lt;p&gt;I am currently working on this &lt;a href="https://github.com/roschaefer/rundfunk-mitbestimmen"&gt;project&lt;/a&gt; because it was the easiest to set up. It uses docker compose to set up the development environment. I was very lucky to join a pairing session with &lt;br&gt;
 &lt;a href="https://github.com/roschaefer"&gt;Robert&lt;/a&gt;. I have even been assigned a beginner friendly issue &lt;a href="https://github.com/roschaefer/rundfunk-mitbestimmen/issues/427"&gt;there&lt;/a&gt;.&lt;br&gt;
I have started working on that issue. I just wish I would have started contributing earlier. It is fun!&lt;/p&gt;

&lt;p&gt;If any one else out there wants to contribute to open source, I found this interesting. You can just join the slack &lt;a href="https://agileventures.slack.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have 3 years of professional Ruby on Rails experience, a full stack developer. If any one else out there know any interesting projects that I can contribute to please comment.&lt;/p&gt;

&lt;p&gt;I can't wait to commit to dev.to as well &lt;a href="https://github.com/thepracticaldev/dev.to"&gt;here&lt;/a&gt;.&lt;/p&gt;


</description>
      <category>opensource</category>
      <category>rails</category>
      <category>agileventures</category>
      <category>slack</category>
    </item>
    <item>
      <title>Ctags mac Vim</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Thu, 02 Aug 2018 19:11:09 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/ctags-mac-vim-4637</link>
      <guid>https://forem.com/adityavarma1234/ctags-mac-vim-4637</guid>
      <description>&lt;p&gt;Install ctags in vim using home brew&lt;br&gt;
brew install ctags&lt;br&gt;
I have set up this mapping in my vimrc file for the ctags&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;map &amp;lt;C-F12&amp;gt; :!ctags -R --exclude=.git --exclude=logs --exclude=doc . &amp;lt;CR&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;I just press&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;ctrl + fn + f12&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 and voilla I can use&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;ctrl + ]&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 to go the definition of function in a rails project.&lt;/p&gt;

&lt;p&gt;The above did not find do tagging for gem specific functions.&lt;br&gt;
I had to add&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bundle list --paths&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;to the above line as well.&lt;br&gt;
So now I have a new mapping which is something like this&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;map &amp;lt;C-F12&amp;gt; :!ctags -R --exclude=.git --exclude=logs --exclude=doc . $(bundle list --paths)&amp;lt;CR&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Now I go to a gem specific function and type&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;ctrl + ]&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 and voila I have migrated to the gem file and now I can have a look at the gem source.&lt;/p&gt;

&lt;p&gt;useful links: &lt;a href="https://blog.sensible.io/2014/05/09/supercharge-your-vim-into-ide-with-ctags.html"&gt;https://blog.sensible.io/2014/05/09/supercharge-your-vim-into-ide-with-ctags.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://andrew.stwrt.ca/posts/vim-ctags/"&gt;https://andrew.stwrt.ca/posts/vim-ctags/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rails</category>
      <category>ruby</category>
      <category>vim</category>
      <category>ctags</category>
    </item>
    <item>
      <title>Things to ask an interviewer after the interview</title>
      <dc:creator>Aditya Varma</dc:creator>
      <pubDate>Sat, 21 Apr 2018 09:23:00 +0000</pubDate>
      <link>https://forem.com/adityavarma1234/things-to-ask-an-interviewer-after-the-interview-50n0</link>
      <guid>https://forem.com/adityavarma1234/things-to-ask-an-interviewer-after-the-interview-50n0</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Can you tell me the day to day responsibilities for this job?&lt;/li&gt;
&lt;li&gt;What do you think are the most important qualities for some one to excel in this role?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What are your expectations for this role in the first 30 days and 60 days, year?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Describe the culture of the company?&lt;/li&gt;
&lt;li&gt;Where do you think the company is headed in the next 5 years?&lt;/li&gt;
&lt;li&gt;What are the biggest opportunities facing the company/department right now?&lt;/li&gt;
&lt;li&gt;What are the biggest challenges facing the company/department right now?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What do you like best about working for this company?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What don’t you like about working for this company?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;What is the typical career path for some one in this role?&lt;/li&gt;
&lt;li&gt;What are the next steps in the interview process?&lt;/li&gt;
&lt;li&gt;How will you measure the success of person in this position?&lt;/li&gt;
&lt;li&gt;What are some of the challenges you expect person in this position to face?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thinking back to people you’ve seen do this work previously what differentiates the ones who were good from the ones who were great?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What is the most challenging task that your team has worked on?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>interview</category>
      <category>job</category>
      <category>recruitment</category>
      <category>newopportunity</category>
    </item>
  </channel>
</rss>
