<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Howto on Noetic Nought</title>
    <link>https://punchagan.muse-amuse.in/tags/howto/</link>
    <description>Recent content in Howto on Noetic Nought</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>© 2006-2026 CC-BY-SA-4.0</copyright>
    <lastBuildDate>Wed, 22 Apr 2015 11:48:50 +0530</lastBuildDate>
    <atom:link href="https://punchagan.muse-amuse.in/tags/howto/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>WiFi Channels &amp; my router&#39;s random invisibility</title>
      <link>https://punchagan.muse-amuse.in/blog/wifi-channels-my-routers-random-invisibility/</link>
      <pubDate>Wed, 22 Apr 2015 11:48:50 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/wifi-channels-my-routers-random-invisibility/</guid>
      <description>&lt;p&gt;To update some data plan changes, I had to restart my router today.  I did so&#xA;from the (web) admin interface, from my dad&amp;rsquo;s laptop. Guess what!  The router&#xA;goes invisible (to the laptop), after the restart!  Other devices were still&#xA;happily connected.&lt;/p&gt;&#xA;&lt;p&gt;There were a few occasions in the past when this laptop had failed to find our&#xA;home router.  The solution that worked for my dad before was to restart the&#xA;router; once, or may be a couple of times.  But, this time it didn&amp;rsquo;t work.&lt;/p&gt;&#xA;&lt;p&gt;I had a feeling this was something to do with &amp;ldquo;Channels&amp;rdquo;, but I had no idea&#xA;what was going on.&lt;/p&gt;&#xA;&lt;p&gt;I logged onto the router and started looking at the Wireless settings in the&#xA;hope of finding some clue, and there it was! &lt;code&gt;Wireless Channel: Auto Scan&lt;/code&gt;&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;../../images/auto-scan.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;It was anybody&amp;rsquo;s guess that some channels that the router uses weren&amp;rsquo;t&#xA;supported by my dad&amp;rsquo;s laptop.  The restarts &lt;strong&gt;sometimes&lt;/strong&gt; helped because the&#xA;router would scan for channels that it thinks would work well, and end-up using&#xA;something that the laptop&amp;rsquo;s wifi card supported.&lt;/p&gt;&#xA;&lt;p&gt;The router only had options of channels from 1 to 13.  To see what channels a&#xA;wifi card supports, you can run the &lt;code&gt;iwlist freq&lt;/code&gt; command.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;iwlist freq&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;eth1      &lt;span class=&#34;m&#34;&gt;26&lt;/span&gt; channels in total&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; available frequencies :&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;01&lt;/span&gt; : 2.412 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;02&lt;/span&gt; : 2.417 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;03&lt;/span&gt; : 2.422 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;04&lt;/span&gt; : 2.427 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;05&lt;/span&gt; : 2.432 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;06&lt;/span&gt; : 2.437 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;07&lt;/span&gt; : 2.442 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;08&lt;/span&gt; : 2.447 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;09&lt;/span&gt; : 2.452 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt; : 2.457 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;11&lt;/span&gt; : 2.462 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;12&lt;/span&gt; : 2.467 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; : 2.472 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;14&lt;/span&gt; : 2.484 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;36&lt;/span&gt; : 5.18 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;38&lt;/span&gt; : 5.19 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;40&lt;/span&gt; : 5.2 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;42&lt;/span&gt; : 5.21 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;44&lt;/span&gt; : 5.22 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;46&lt;/span&gt; : 5.23 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;48&lt;/span&gt; : 5.24 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;149&lt;/span&gt; : 5.745 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;153&lt;/span&gt; : 5.765 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;157&lt;/span&gt; : 5.785 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;161&lt;/span&gt; : 5.805 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          Channel &lt;span class=&#34;m&#34;&gt;165&lt;/span&gt; : 5.825 GHz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So, the laptop&amp;rsquo;s wifi card support all the channels that the router could use.&#xA;&lt;code&gt;iwlist freq&lt;/code&gt; also gives the current Channel if the device is already connected&#xA;to a router.  I ran this on my laptop and found that the router was using&#xA;&lt;code&gt;Channel 13&lt;/code&gt;.  Why the hell wouldn&amp;rsquo;t this work?!  I don&amp;rsquo;t know!&lt;/p&gt;&#xA;&lt;p&gt;I decided to set a channel manually, but how do I pick a channel?  The idea of&#xA;&amp;ldquo;Auto Scan&amp;rdquo; is to find a channel that has relatively low interference.  How do&#xA;we do this manually?  &lt;code&gt;sudo iwlist scan&lt;/code&gt; scans for all the WiFi access points&#xA;nearby and gives detailed information about them, which includes the Channel.&lt;/p&gt;&#xA;&lt;p&gt;It looked like most of the routers nearby used channels 1 and 6, with a few 3s&#xA;and 4s.  Assuming, most of the other routers aren&amp;rsquo;t doing this &amp;ldquo;Auto Scan&amp;rdquo;&#xA;business, I set my router to always use Channel 9, and the laptop seems to be&#xA;happily connected, now!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>I love FOSS.  How do I start contributing (code)?</title>
      <link>https://punchagan.muse-amuse.in/blog/i-love-foss-how-do-i-start-contributing-code/</link>
      <pubDate>Mon, 28 Mar 2011 00:34:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/i-love-foss-how-do-i-start-contributing-code/</guid>
      <description>&lt;h2 id=&#34;why-this-article&#34;&gt;Why this article?&lt;/h2&gt;&#xA;&lt;p&gt;I teach (Science and Engineering) students and teachers to use Python for&#xA;their computational tasks.  I&amp;rsquo;m occasionally asked this question or something&#xA;similar.  I remember, it was not too long ago, that I asked this question&#xA;very often.  I asked anybody who was more experienced than me, &amp;ldquo;How do I&#xA;start contributing (code) to FOSS?&amp;rdquo; and all the answers I got, were very&#xA;similar.  Also, my answer is not going to be radically different.  But, I&#xA;would still like to answer this question, because -&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;All the answers I got, were from big-time, experienced contributors.  I&#xA;suspect, they only vaguely remember how it feels to be just starting off.&#xA;But, I am just starting off and I think my answer brings a slightly&#xA;different perspective that would help others&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;&#xA;&lt;li&gt;This piece of writing is meant to be one comprehensive compilation of&#xA;things I want to share, if and when I&amp;rsquo;m asked this question in the&#xA;future&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;&#xA;&lt;li&gt;More than anything else, a reminder and reference for myself.  I still&#xA;have a long way to go.  I only have a handful of contributions against my&#xA;name (none of them earth shattering).  I haven&amp;rsquo;t (yet) done my 10,000&#xA;hours of programming nor have I learned anything like half a dozen&#xA;programming languages.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Thanks to baali, Ringo and Voodoo for reading drafts of this article and&#xA;giving some very valuable feedback to improve it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-should-i-do&#34;&gt;What should I do?&lt;/h2&gt;&#xA;&lt;p&gt;I know how exciting the FOSS world seems, the first time we discover it.  You&#xA;are dying to contribute.  You want to contribute, Right Now!  But you&amp;rsquo;ve no&#xA;clue, what, where and how.  Relax.  Give yourself time.  You&amp;rsquo;ve a lifetime&#xA;ahead of you.  Explore.  Explore, even more.  Play with things, Try out&#xA;stuff, Break stuff, Spill things all over the place.  Have fun!&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Given that you are reading this, I presume that, you do have access to the&#xA;Internet.  But, if you don&amp;rsquo;t, it could turn an impediment to your goal.  Easy&#xA;access to a decent internet connection is a prerequisite.&lt;/p&gt;&#xA;&lt;p&gt;Learn a programming language, well&lt;sup id=&#34;fnref1:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.  By learning, I don&amp;rsquo;t mean&#xA;getting familiar with the syntax or passing a bunch of exams.  Get familiar&#xA;with the paradigms of the language.  Learn to think in that language.  Write&#xA;code that does something &lt;strong&gt;real&lt;/strong&gt;, instead of doing toy examples.&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; Also,&#xA;it helps know bits and pieces about the history and evolution of the&#xA;language.  This will give you a sense of why some features are present (or&#xA;absent) and will help you program better, in that language&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Some projects will definitely catch your eye, while you are exploring.  Start&#xA;using the ones that you need.  Follow them!&lt;/p&gt;&#xA;&lt;p&gt;Start with using the bleeding edge &lt;sup id=&#34;fnref:7&#34;&gt;&lt;a href=&#34;#fn:7&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;7&lt;/a&gt;&lt;/sup&gt; software.  Bleeding edge refers&#xA;to the latest sources of the project, where the active development is going&#xA;on.  Given the continuous nature of software development, using the latest&#xA;source,&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;prevents you from wasting time on fixing bugs that have already been fixed&#xA;and&lt;/li&gt;&#xA;&lt;li&gt;lets you look at the latest changes being made and contribute effectively&#xA;and easily&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Also, start following the project&amp;rsquo;s mailing lists &amp;ndash; both the dev and the&#xA;user lists, if they are separate.  The user-list discussions will help you&#xA;discover functionality and possibly give you some chance to peek at the&#xA;source code, too.  Don&amp;rsquo;t be surprised or worried if you don&amp;rsquo;t follow most of&#xA;what goes on, in the dev-list.  Be patient and keep at it.  You will learn a&#xA;lot about the &lt;em&gt;what, why and how&lt;/em&gt; of the project.  Also don&amp;rsquo;t be afraid to&#xA;look foolish there!  There wouldn&amp;rsquo;t be one developer who doesn&amp;rsquo;t have some&#xA;embarrassing logs of stuff she said in public, in her initial days.&lt;/p&gt;&#xA;&lt;p&gt;Slowly you&amp;rsquo;ll start to learn the dynamics of the community &amp;ndash; how things&#xA;function, the DOs and DON&amp;rsquo;Ts, etc &lt;sup id=&#34;fnref:8&#34;&gt;&lt;a href=&#34;#fn:8&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;.  Also, there&amp;rsquo;s a good chance&#xA;that the project has an active IRC channel.  If it does, hanging out there&#xA;will give you more insights.  Contributing to the documentation, is often a&#xA;useful step before contributing code.  Cleaning up the documentation or&#xA;writing documentation, often requires you to read the code and helps you&#xA;understand it better.&lt;/p&gt;&#xA;&lt;p&gt;Next, start &lt;strong&gt;acting&lt;/strong&gt; on Bug reports (or tiny feature requests).  Start with&#xA;trying to reproduce the bugs and sending confirmations.  Gradually, start&#xA;looking at the source and trying to figure out where the problem is.  Be&#xA;patient, with this &lt;sup id=&#34;fnref:9&#34;&gt;&lt;a href=&#34;#fn:9&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;9&lt;/a&gt;&lt;/sup&gt;.  Once you get comfortable with the code&#xA;and the coding style, start sending code snippets and comments, explaining&#xA;what you think might be the problem.  One fine day, you will be able to send&#xA;a full working patch!  But, before that don&amp;rsquo;t hesitate to send partial fixes.&#xA;You can learn a lot from the comments of the devs and looking at how they&#xA;finally fixed it.  Also, IRC could be a good place to ask for help, if you&#xA;are stuck and are looking for some quick help, so you can move further.&lt;/p&gt;&#xA;&lt;p&gt;In all of this, it helps if you have one (or a bunch of) favorite &lt;em&gt;area(s)&lt;/em&gt;&#xA;or &lt;em&gt;module(s)&lt;/em&gt; of the project, specially in a big project.  You should pounce&#xA;upon any issues in your favorite area.&lt;/p&gt;&#xA;&lt;p&gt;Participate in sprints.  It&amp;rsquo;s not uncommon for projects to have regular&#xA;sprints.  Make it there &lt;sup id=&#34;fnref:10&#34;&gt;&lt;a href=&#34;#fn:10&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;10&lt;/a&gt;&lt;/sup&gt;!  Also, a couple of developers may decide&#xA;to meet up on a weekend and hack.  If it&amp;rsquo;s happening in your neighborhood,&#xA;ask if you can join.  Don&amp;rsquo;t be surprised, if they shout out a big YES!  You&#xA;will definitely learn a lot, when there is help so close-by.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;em&gt;shortcut&lt;/em&gt; would be to start your own project!  It is easier (in some ways)&#xA;to release your own code under a FOSS license, than contribute to some of the&#xA;existing projects.  You don&amp;rsquo;t have to have your code approved by the project&#xA;leads, you don&amp;rsquo;t need to mould your code to fit the standards of the project,&#xA;you don&amp;rsquo;t have to read and understand all the (relevant parts of the)&#xA;existing code, etc.  But all of this, definitely teaches you a lot.&lt;/p&gt;&#xA;&lt;p&gt;As a beginner, I think it is important to solve your &lt;strong&gt;own&lt;/strong&gt; problems, problems&#xA;that you care about (at least at that point in time).  Most of the projects,&#xA;started off with their developers wanting to solve their own problems.  Only,&#xA;incidentally, they solved some of the World&amp;rsquo;s problems, too!&lt;/p&gt;&#xA;&lt;p&gt;Start small, though.  Don&amp;rsquo;t start off with a project that aims to replace&#xA;Chrome or Firefox as the best browser, or an editor to replace Vim or Emacs.&#xA;Writing extensions to your favorite software could be a good place to start,&#xA;for instance an Emacs minor/major mode&lt;sup id=&#34;fnref:11&#34;&gt;&lt;a href=&#34;#fn:11&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;11&lt;/a&gt;&lt;/sup&gt;, a Chrome&#xA;extension&lt;sup id=&#34;fnref:12&#34;&gt;&lt;a href=&#34;#fn:12&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;12&lt;/a&gt;&lt;/sup&gt;, etc.  Stand on the shoulders of giants!&lt;/p&gt;&#xA;&lt;p&gt;Also, take this as an opportunity to gain some of the skills that would be&#xA;useful, when you want to start contributing to others projects.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Learn to use Version Control (Git + GitHub is awesome!)&lt;/li&gt;&#xA;&lt;li&gt;Learn to use build and setup tools.&lt;/li&gt;&#xA;&lt;li&gt;Learn about packaging and distributing your software.&lt;/li&gt;&#xA;&lt;li&gt;Learn how to license your code.&lt;/li&gt;&#xA;&lt;li&gt;Learn to Collaborate!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;All of this, I hope, would suffice to get your first contribution in.  But,&#xA;there are a few things that will help you in the long run.&lt;/p&gt;&#xA;&lt;p&gt;Good English. Specially written communication, since that is how you would be&#xA;communicating, more often than not.  Fair or not, hackers are known to be&#xA;very particular about good communication.  I&amp;rsquo;m not exaggerating when I say,&#xA;what you say may be ignored even if it makes perfect sense, if you said it in&#xA;sloppy English.&lt;/p&gt;&#xA;&lt;p&gt;Using a *nix would put you in some great company.  At the very least, you&#xA;save time when looking for solutions to known problems.  Using a good editor&#xA;and learning to type quickly can be big productivity gains.  You only get 24&#xA;hours a day!&lt;/p&gt;&#xA;&lt;p&gt;An understanding of licensing issues, can come in handy, many a times.&lt;/p&gt;&#xA;&lt;p&gt;For more, read How to Become a Hacker by Eric Raymond.&lt;/p&gt;&#xA;&lt;p&gt;Happy Hacking!&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;I&amp;rsquo;m writing in the Indian context.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;All of this is generic advice, but students applying to programs like GSoC, may find it useful.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Teach Yourself Programming in Ten Years by Peter Norvig.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href=&#34;#fnref1:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Getting yourself a GitHub account and &lt;em&gt;socializing&lt;/em&gt; there is a lot of fun and helps quite a bit. GitHub is my Facebook!&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;I started learning Python from &lt;em&gt;the Python tutorial&lt;/em&gt; and some other sources and doing the examples in them. It was good, but I think I started learning more, and better, when I started solving problems from Project Euler. And writing an IRC bot in Python, taught me a lot more than all of this.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:6&#34;&gt;&#xA;&lt;p&gt;I recommend Python, but I am definitely biased. Any language that is generic enough would do, really. 1. It gets you off the blocks, very quickly. 2. It is easy to learn. 3. It is batteries included. Read as, comes bundled with a huge bunch of libraries. 4. It is general purpose enough. Read as, it has libraries that let you do anything, you&amp;rsquo;d possibly want to do. 5. There&amp;rsquo;s a lot of Python code around, that you can read andlearn from.&amp;#160;&lt;a href=&#34;#fnref:6&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:7&#34;&gt;&#xA;&lt;p&gt;You may have to learn to use a version control system; at the very least cloning and pulling updates.&amp;#160;&lt;a href=&#34;#fnref:7&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:8&#34;&gt;&#xA;&lt;p&gt;Org-mode is the only project that I really contribute to, actively. I &lt;strong&gt;really&lt;/strong&gt; liked the way the community gels together and the kind of people on the list. There are some really knowledgeable, friendly and helpful people. It feels great to be a part of the community.&amp;#160;&lt;a href=&#34;#fnref:8&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:9&#34;&gt;&#xA;&lt;p&gt;There have been instances, where it took me half a day to fix something, that would&amp;rsquo;ve been fixed in about an hour by someone more comfortable with the code. But, I think everybody goes through this stage. This is how you learn.&amp;#160;&lt;a href=&#34;#fnref:9&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:10&#34;&gt;&#xA;&lt;p&gt;A few months ago, I was part of a sprint on the numpy-scipy eco-system. We had somewhere around 50 patches (a lot of them were documentation fixes) submitted to all the projects! Most of the people were submitting their first patch and I think it was a great opportunity for them to start. [I should try and get back to them.]&amp;#160;&lt;a href=&#34;#fnref:10&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:11&#34;&gt;&#xA;&lt;p&gt;Org-mode is really awesome, and I use it for everything I write. Blog posts are a big part of what I write, and so, I wanted to write them in orgmode. And so, org2blog was born.&amp;#160;&lt;a href=&#34;#fnref:11&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:12&#34;&gt;&#xA;&lt;p&gt;I recently wrote a Chrome extension, thanks to a friend&amp;rsquo;s idea. Inspired by Gmail notifications, a GitHub addict wanted notifications for activity in GitHub.&amp;#160;&lt;a href=&#34;#fnref:12&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Contributing to FOSS</title>
      <link>https://punchagan.muse-amuse.in/blog/contributing-to-foss/</link>
      <pubDate>Thu, 19 Aug 2010 00:00:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/contributing-to-foss/</guid>
      <description>&lt;p&gt;gora asked for some good links (on ##linux-india) to redirect&#xA;newbies, enthusiastic about contributing to FOSS.&lt;/p&gt;&#xA;&lt;p&gt;I dug up a few links from the web - some that I read, when I&#xA;was starting off with using GNU/Linux and FOSS, others are&#xA;newer links.&lt;/p&gt;&#xA;&lt;p&gt;Just making a note of them here; hoping someone would find it&#xA;useful.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;How to Become a Hacker - A definitive how-to on becoming a&#xA;hacker. Answers all the right questions. :)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Philosophy of the GNU Project - This is the page, where I&#xA;started. Thanks to Voodoo for giving me the link to this page. I&#xA;distinctly remember that day. :) I&amp;rsquo;m going to pass on this link&#xA;to any newbie who comes my way, no matter how much bashing I get&#xA;from other FOSS evangelists.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;6 Easy Ways To Get Started Programming Open Source - A neat list&#xA;giving steps to get started with programming for open source. I&#xA;like #4. Understanding the social dynamics of the project is an&#xA;important thing which is often overlooked by newbies.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;OpenHatch - A community site to help newbies get started with&#xA;contributing to FOSS. A cool site. Also, here is a story about&#xA;OpenHatch.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Look at the Numbers! - an interesting paper giving quantitative&#xA;data in support of using FOSS.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ubuntu - Code of Conduct - A nice description of general conduct&#xA;expected in any of the FOSS communities, not just Ubuntu.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I&amp;rsquo;d be happy to add any other links that any of you share. Thanks!&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
