☛ Some cogent blogging advice

From an interview by Cynthia Dunlop of Simon Willison, co-creator of Django, and prolific blogger and technical writer:

Any lessons learned that you want to share with the community?

My number one tip for blogging is to lower your standards! Aim to hit publish while you are still actively unhappy with what you have written, because the only alternative is a huge folder full of drafts and never publishing anything at all.

Nobody will ever know how perfect the thing you intended to write would have been. The flaws you see in your writing are invisible to everyone else.

Oh, how perfect is this advice, and how much I feel this is pointing exactly towards me!

I’ve been blogging, off-and-on, since 2007, and I have the drafts and half-formed ideas to show for it. You’ll find, if you go through the history and pace of my writing and posting, how much and how little I have actually published over various periods of time. Over the recent years, it’s not that I have had fewer things to say, write, or comment about. Instead, the crunch is in the time I have available to put together pieces, whether small or substantial, that I think are good enough to publish.

For someone like me, Willison’s advice couldn’t have been framed any better. But. Hitting publish while unhappy is all fine and dandy, if I’m at least satisfied I’ve made the point or the contribution I thought I could make. There’s unhappiness, and there are standards, no? I like how John Gruber put it commenting on the same piece — as playing live music rather than recording an album — keeping it professional and high quality but not sweating the occasional wrong note.

I do need to hit publish more often, though. So, here goes — publishing while I’m still actively unhappy with this piece.


On avoiding plagiarism

I’ve been a student panelist at the Virginia Tech Graduate Honor System (GHS) for a few years now, and by far the most frequent infractions students are accused of involve some form of plagiarism. In some cases, alas, the students seem perfectly aware of what they’re upto, but very often, it seems that they just didn’t realize that what they were doing was anything wrong, or indeed, anything out of the ordinary.

Unfortunately, whether you knew and understood or not, if you did it, well, you did it. On that note, here are some pointers on avoiding plagiarism.

Let me focus on writing in particular, even though this applies equally well to any other creative task. If I had to summarize the concept in one sentence, I’d put it this way: when you’re writing something, there should be no ambiguity in the reader’s mind as to who actually composed the words in different portions of your document. If the document header contains your name, the assumption is that you wrote it, unless you specify otherwise. You’re perfectly fine using material from other sources and authors—as long you make it explicitly clear as to the authorship of that material.

Let’s say you’re referring to Wikipedia to understand a particular terminology or concept to include in a paper. You have one of two options:

  • Cite Wikipedia as a source, and use the words from Wikipedia within quotation marks.
  • Or, read and understand the material (but don’t memorize it word-for-word), and then close the webpage. Now try writing about the concept that you just read about. Or better yet, come back in an hour and write about it. Chances are the words you write are your own words and your own understanding, even though you read about it on Wikipedia. You should still cite Wikipedia as the source of your information, of course.

    If, while writing, you find yourself having to refer to the Wikipedia article to “refresh” your memory of the language used, you’d better cite the article and include the relevant portions verbatim, and within quotation marks.

The quotation marks are important in addition to including citations. This is because, as I mentioned above, citations are a must as sources of information, even if the words and compositions are your very own. If you don’t use quotation marks, it appears, of course, that the words are your own. If they aren’t, guess what you’re guilty of!

Also, remember to be sparing in using material verbatim from sources. A couple of sentences at most, and in rare occasions, perhaps a paragraph or two. If you’re using a paragraph, enclose the entire paragraph in quotation marks, and/or consider italicizing or indenting the paragraph to distinguish from your other paragraphs. Remember, your article is your own, and should almost entirely comprise your sentences. (This seems like a no-brainer, but I’ve seen instances where almost the entirety of a write-up has been “compiled” from various sources.)

There are some excellent resource on the internet about avoiding plagiarism. Here’s one: http://www.plagiarism.org/plagiarism-101/what-is-plagiarism.

To repeat once again, there should be no ambiguity as to the authorship of any portion of your work. Make it clear and cite the source, and you’ll be fine. Please, don’t get caught in embarrassing situations only because you didn’t know better. :)



Using MathJax with Octopress

I’ve been meaning to try and implement MathJax on this website for a while now. For including math equations on a website, MathJax is probably one of the more elegant ways to do it. I can write equations in TeX format, and MathJax renders the equations properly for you!

Finally, in the last couple of days I’ve been forced to get around to it, thanks to a new post that I’m writing that includes a little bit of math. So anyway, I just wanted to jot down that process.

The thing with MathJax is that it’s meant to, and does, work with HTML. But since I’m working with Octopress and Markdown, I have to ensure that the conversion from Markdown to HTML produces no unwanted syntactical errors for MathJax. To get around this problem, Zac Harmany (I hope I got the name right) suggests tweaking the Markdown rendering engine to Pandoc, so that the conversion works as desired. I’m sure that works great, but I had no intention of tweaking my Markdown conversion engine. Instead, I discovered a nifty ruby bundle (here) that serves a great purpose.

Next, the typical MathJax “installation” involves adding a line in the <head> section of your Octopress theme (Add it to %octopress_root%/source/_includes/custom/head.html), so that when every page loads, the necessary Javascript files are also loaded, ready to render your equations. I did not want the Javascript to execute to load along with all my pages, given that I don’t expect to have equations in all my posts. Instead, I’ve included the call to the script in the <body> of the post, i.e. in the meat of the post itself. Remember that the declaration needs to be before your first equation.

I also contemplated downloading the MathJax distribution and hosting it locally on my own server, but that did not work at all. There are way too many files to be uploaded (each file is small; the total package is ~50MB; there are too many files, though) and it just took forever to upload to my server until I just gave up. I’ll revisit that option if I think using MathJax’s own servers is not working well—which I doubt will happen.

With those details, here’s how I set things up:

  • Install the verbatim.rb plugin from this Github repository. To do this, simply download the file (‘Gist’ in Github parlance) and place it in %octopress_root%/plugins. When inserting equations, there’s a syntax to using this plugin; I’ll demo it below.

  • Create a MathJaxLocal.js file at %octopress_root%/source/javascripts/ to add local configurations for MathJax. Note that the last line of the code must point to the full path of the local file, in my case http://arnabocean/javascripts/MathJaxLocal.js

    Here’s what my MathJaxLocal.js looks like (I started with Zac Harmany’s file and modified to suit my needs.):

    MathJax.Hub.Config({
        jax: ["input/TeX","output/HTML-CSS"],
        extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
        tex2jax: 
            {
                inlineMath: [ ['$','$'], ['\\(','\\)'] ],
                displayMath: [ ['$$','$$'], ['\\[','\\]'] ],
                skipTags: ["script","noscript","style","textarea","pre","code"],
                processEscapes: true
            },
        TeX:
            { 
                equationNumbers: { autoNumber: "AMS" },
                TagSide: "left",
    
            },
        "HTML-CSS": { availableFonts: ["TeX"] }
        });
        MathJax.Ajax.loadComplete("http://arnabocean.com/javascripts/MathJaxLocal.js");
    
  • Declare the location of the MathJax files. The easiest thing to do is to use MathJax’s own servers. However, in addition to just their servers, you’ll have to link to your own local config file as well, so we’ll add both of these at the same time. In the main body of your markdown post (preferably after the “Read More” fold), add the following:

    <script type="text/javascript"
    src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://arnabocean.com/javascripts/MathJaxLocal.js">
    </script>
    

In the above, the first link points to MathJax servers, the second points to my own config file.

And that’s basically it! Now you’re all set to write beautiful equations. Here’s a demo:

<!-- MathJax configuration -->
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://arnabocean.com/javascripts/MathJaxLocal.js">
</script>
<!-- End MathJax Configuration -->

{% raw %}{% verbatim tag:p %}{% endraw %}
\[ 
f(x)= a_0 + a_1\sin(x) + a_2\sin(2x) + ...
\]

\[  
+b_1\cos(x) + b_2\cos(2x) + ...
\]

\[
f(x)=a_0+\sum_{k=1}^\infty\big( a_k\cos(kx)+b_k\sin(kx) \big)
\]
{% raw %}{% endverbatim %}{% endraw %}

And here’s what that would look like:

\[ f(x)= a_0 + a_1\sin(x) + a_2\sin(2x) + … \] \[ +b_1\cos(x) + b_2\cos(2x) + … \] \[ f(x)=a_0+\sum_{k=1}^\infty\big( a_k\cos(kx)+b_k\sin(kx) \big) \]

There’s still a lot of more that I need to find out, and from the looks of it, Zac’s website is a great resource. I’ll add more posts if I find anything useful that I end up using.


How would you explain to a public audience the importance of interdisciplinary research?

A few years ago, there was a competition of sorts (I don’t remember the details) where the brief was to write 500 words or less on the importance of interdisciplinary research, aimed at a “public audience”. My submission didn’t qualify for final selection, but here it is anyway. :)

Research, development and innovation plays a crucial role in human life. Not only technological and scientific advancements, but the study of the human condition, our societies, our art and culture, and what it is that makes us who we are—it all involves research, and it is all indispensable. From what makes us happy and sad, frustrated or psychotic, to how we can mimic the gecko’s foot, our research is what defines us.

The thing about education and learning is (and this becomes more applicable with more specialized training) that we tend to focus on narrow areas to become experts in. There is no other way—it is quite rare for an individual to be able to master and be experienced in diverse fields. The problem, of course, is that reality is not divided into specializations and ‘majors’, and areas of expertise.

Consider an example: designing an automobile. Does it only involve the aesthetics of how it looks? Certainly not. The designer has to consider the materials that will build the vehicle, and how strong it needs to be. More, there’s also the thought of minimizing air resistance as the vehicle speeds down the road. Even the most elementary consideration leads us in this case to the artist, the structural engineer, and the aerodynamicist. These are diverse areas of expertise, coming together to create a beautiful and functional automobile.

Consider again the psychologist who wants to improve how people manage their life’s problems. She has certain new ideas, and wants to test them out in a variety of conditions, with a variety of individuals. She makes full use of her expertise in psychology, but in addition, she must now extensively use statistics, so see if her results are meaningful! Once again, real life finds a way to bring together two completely different areas of specialization.

The best and the most productive and beneficial research has to be interdisciplinary. This has the benefit of involving individuals who are specialists in their areas, who can bring insight to a problem that no one specialist can contribute. More, the nature of a problem in one area often benefits from knowing how a similar problem is solved in another area. Most importantly, interdisciplinary research means a new body of knowledge in one field can be extended for use in another area—a benefit that wasn’t originally anticipated while doing the research.

Recently, a NASA effort to improve how jet fuels mix inside rockets when burning had an unintended consequence: the technology was used to improve firefighting equipment. Where the old system needed a few men, 220 gallons of water, and 1min 45seconds to control a fire, the new system did it in 17seconds, using 13.6 gallons of water and one fireman.

This is why research must be interdisciplinary—because you never know how the next rocket technology can save lives quicker in a fire, and conserve precious water while doing it.