Thursday, October 16, 2014

Playing with the Facebook Graph API in Python: Downloading posts from "The Elbi Files" Page

If you are a fan of The Elbi Files, you can download the posts on the page using the procedure described here. I am using Ubuntu 12.04.
  1. Install pip[1].
  2. Configure and activate facebookenv virtual environment[2].
  3. Install requests package while in facebookenv environment: pip install requests
  4. Get an access token using Facebook's Graph API Explorer tool[3].
  5. Download the Python file below. Make sure you change the access token to the  one you obtained from step 4.
  6. Run the script on the terminal and redirect the output to a file:  PYTHONIOENCODING=UTF-8 python elbifiles.py > elbifiles.txt
  7. Note that the script downloads the messages only. Facebook however allows you to download more! Use responsibly. Now do some "interesting" text processing on the text file!


Resources:
[1] http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/
[2] http://facebook-sdk.readthedocs.org/en/latest/install.html
[3] https://developers.facebook.com/tools/explorer

Sunday, October 5, 2014

On reading/reviewing papers

(Last update: 17 January 2023)



I've reviewed for PCSC, NCITE, MJST, PeJARD, and others. Although most of the reviewing are unpaid (aka "service"), it is quite fulfilling to be part of the academic peer review process. Reviewing also lets me know what my peers are currently working on. In this post, I describe how I review a paper. 

I don't do any plagiarism check because I assume that the program committee chair/journal editor has performed a "desk check" using current automated tools, like Turnitin, before handing out the paper to the reviewers. I also don't initially read a paper's abstract. 

After reading a paper two times, I consider it well-structured and well-written if I can clearly answer the following at a "high level":
  • What is the problem/research question being addressed?
  • Why is the problem/research question significant or interesting?
  • What are existing solutions to the problem?
  • What is/are the proposed solution(s)?
  • What is the work's main (technical) contribution to the "body of knowledge" in the area?
  • Is the contribution "new" and "significant"?
I do a more thorough reading on the third and fourth passes where I take note of the important claims and check the methods, as well as the results, for correctness. I dissect the technical details of the work "as presented" in the paper. The fifth pass is for validating and double-checking my understanding of the paper. 

Once I'm confident about my understanding of the paper, I write my own abstract and compare it to the paper's abstract. 

I accept a paper based on the following: 
  1. The paper is "relevant" to the conference or journal.
  2. The contribution is "significant".
  3. The work is not just a "repeat-experiment" or an "application of existing techniques" on a different dataset or domain. If it is a "repeat-experiment", the "insights" gained from the result are "substantial" and are "extensively" supported by proofs.
  4. Important claims are supported by citations, proofs, or data analysis and interpretation.
  5. The "context of the work" is properly "placed" in relation to other work. Relevant papers are properly cited. I should be able to identify the one (or two) reference(s) which motivated the work. 
  6. The paper uses simple words and sentences. Too much use of jargon  makes a paper difficult to read and thus defeats the purpose of publication: effective and efficient communication of research results.
  7. The paper cites scholarly articles (journal articles, conference proceedings, technical reports), not just web sites. 
  8. I believe I can duplicate the experiments conducted and get the same results using the same dataset, environment, and parameters as the authors' (if I have the resources and given enough time). Plus points if the source code and dataset are made public.
  9. The paper is in the proper format for the conference or journal.
  10. Tables and figures are readable, can stand on their own, and have useful labels and captions.
The above criteria may seem too strict and rigid. However, I believe peers who review my work have even stricter criteria.

As a final note, I always review with the mindset of accepting a submission. In case I reject a paper, I see to it that my written review describes the things that will make me accept the paper if resubmitted.