Outreachy with Wikimedia: 16th to 22nd June, 2017

Week 6/15

For the 6th Week, I finished with the 5th section of the documentation covering the common code blocks in a Zotero translator. I have planned to move the code snippets from this section to the next section which will be covering the working example of mediawiki translator because I will have to explain the code and adding it here will be redundant. I made use of Embedded Metadata.js in the Oxford Reference translator. Waiting for response from the developers.

We had our first meeting on 20th June on #wikimedia-devrel and it was fun to learn from where everyone came from and what they are working on. Most of it was new for me as I didn’t have a chance to take a look on those projects in the past while filing the application. I wish I take some time out and see each one of them since the interns explained their projects very well. So it’ll be easy for me to know what they were talking about 😀 . I also got to know about Wikimania that is taking place in August in Canada. Would have loved to attend it but I will be having my placement session.

Srishti gave me feedback on the work done till now and it is very valuable. I think every fortnight I should (patiently because it takes effort to read something that you wrote again and again) go through the doc and write down the stuff that needs any change.

Advertisements

Outreachy with Wikimedia: 9th to 15th June, 2017

Week 5/15.

This week I completed documenting section 4, which covered concepts : DOM, XPath, HTML and JavaScript. One of my mentors suggested that we need to include how a user can generate DOM and include Embedded Metadata.js and then write other fields on top of it. While updating translator for Oxford Reference, Philipp suggessted me the same. So I will be learning how to use existing translators when creating new ones. With this I am looking forward to finish common code blocks documentation by scraping wikimedia parallely and presenting it as example in this section. In later section, I will document about how to bring all these pieces together and build a complete translator in Scaffold.

Outreachy with Wikimedia: 2nd-8th June, 2017

Welcome back 😀

Week 4/15. Things are going well. I completed documenting the sections that were planned for the first two weeks of the internship period (Introduction and installtion of required softwares) and I am currently writing about concepts like DOM, HTML, JavaScript. I keep updating my mentors about the sections I write and till now they have approved the content. I just created a PR for Oxford Reference translator. I need some inputs from Zotero community on it and I hope it gets merged by the coming week after all the updation that they’ll suggest (because they always have ideas to get things done in a better way).

Our dear chatroom went through some heath issues (technical problems) this week and couldn’t play a part in the communications we made. My mentor suggessted the steps that I could take to bring it back to life. The developers of WMF took a great care of it by making it a “High” priority. A mail this morning greeted me with the good news from my mentor informing me that the chatroom was fit and fine now. Its good to have the non-living member back on the team 😀 😀

Note: Find my work here.

Summers 2017: You must never forget the reasons behind your actions that brought you where you are.

Outreachy with Wikimedia: 18th May-1st June, 2017

Yes, I agree, 18th May to 1st June, a huge time span. Well, I couldn’t make the last blog post so this will be summing up my work from then till today.
I have decided to write a translator for mediawiki.org and present that as the working example for the documentation. I went through the existing translator Wikipedia.js in order to understand how wiki sites need to be translated and what all data is included in the citation for these articles. Though MediaWiki pages won’t be similarly extracted, it provided a fair idea to me because I was confused about where to begin with translating these huge pages. For translation of search results, I went through Wikisource.js. Things are clearer now. Also, I looked into the user guide of VisualEditor (a quick read, as it is pretty easy to use anyway).The official internship period started on 30th May, 2017. Now I can say, I am an intern at Wikimedia, Woohoo!
For the first week, as planned, I have started working on the two sections of the documentation, brief about Citoid, Zotero and their relationship. I went through all the possible content available on Citoid and wrote a gist about it. Of course with a wiki page dedicated to it, it doesn’t make sense to elaborate it. I came across a research done on Citoid’s support and the TWL/Citoid page. Some issues reported there are resolved, some aren’t. It also made clear how important it is to widen the coverage of Zotero translators.
With at least 7 hours given to the project every day, I am looking forward to creating more translators alongside. I have been a little inactive since the last translator got merged. I have a few sites in line. Let’s see how this week ends.
Deadline: 5th June 2017

Summers 2017: This is what it looks like on heated afternoons.

WhatsApp Image 2017-06-01 at 7.41.05 PM(1)

Emptiness

I am skimming through Paulo Coelho: Confessions of a Pilgrim by Juan Arias and I found this:

By Lao-tse

We put thirty spokes together and call it a wheel,

But it is on the space where there is nothing that the

usefulness of the wheel depends.

We turn the clay to make a vessel,

But it is on the space where there is nothing that the

usefulness of the vessel depends.

We pierce doors and windows to make a house,

And it is on these spaces where there is nothing that the

usefulness of the house depends.

Therefore just as we take advantage of what is, we should

recognize the usefulness of what is not.

I recently watched a Ted talk https://www.youtube.com/watch?v=w7rewjFNiys&t=853s

Is this an omen?

Pleasure and Happiness

“Pleasure is a ‘good fight’ that is something very different to happiness. I don’t relate happiness to pleasure. The idea I have of happiness is very boring: a Sunday afternoon when nothing happens.The struggle and combat, enthusiasm for fighting a battle for something you believe in, sometimes you win and sometimes you lose, but it doesn’t matter, what counts is the struggle to bring something about. That for me is the pleasure of life. So let us say pleasure is everything you do with enthusiasm in life, which can include suffering and pain, but that doesn’t annul the deep pleasure of knowing you’re struggling for something you love.”

Outreachy with Wikimedia: 4th-17th May, 2017

This is my first blog after getting selected as an intern for Wikimedia. Well, this is my first written account of any type after this little achievement. I haven’t yet made a diary entry for it, nor emailed my college mentor thanking him for every possible support. So I think this blog entry might go haywire, but I’ll try my best to keep it formal and on track.

What’s Outreachy?
Outreachy, previously called OPW-Outreach Program for Women is a three-month paid internship program for cisgender and transgender women, people of other gender identities that are minorities in open source (including transgender men and genderqueer people). The best part about this program is that it asks you to be 18 years or more of age, nothing else. Just nothing more than that. So you can either come from business or arts, be a single mother or an undergraduate, be in your teens or be a forty plus diva, you are welcomed to apply.

Wikimedia
It was my second attempt in Outreachy. I applied in round 13 with Zulip. Though I didn’t make it that time but the experience was very fruitful. It taught me how to study huge projects’ code in a way that you find sections that matter to you in order to solve some specific bug. I learned how to communicate with mentors and peers. Research, try to answer our own questions and if you still feel stuck, ask for help.
I was looking at the participating organization list of round 14 and thought why not Wikimedia? Our college hosted WikiToLearn conference’2017 in January and I think somewhere it played a role why I decided to go through the project list of Wikimedia.
I’ll be documenting the process of creating a Zotero translator. I believe during the documentation, I’ll come across many aspects of Citoid and these translators that I haven’t discovered yet. The existing documentation is pretty old and there are some topics that I want to include in my version.

Work done till 17th May’17

  1. Joined Zulip server for the participants
  2. Introduced myself on the mailing list wikitech-l@lists
  3. Created a Phabricator task for submitting the weekly reports
  4. Redesigned my blog, which keeps happening
  5. Updated my Mediawiki user page, this will also happen often in near future

Setting Citoid for testing

I wanted to set up Citoid because I want to solve issues but it is difficult to find a solution if you don’t know the problem clearly. So I decided to setup Citoid. Documentation is at https://www.mediawiki.org/wiki/Citoid

  1. In production, node v6 is being used. So install that.
  2. Follow section 3.1, that is, install from scratch.
  3. When the server is up, enter the url you want to test.
  4. To stop the server use ctrl+c and NOT ctrl+z.
  5. In case you suspend the server with ctrl+z, use killall -9 node

All for now. Let’s hope I am able to improve some code.

Important Resources

I am collecting all the important resources here that will come handy during Outreachy project (fingers-crossed)

How to write test cases and where to find the file needed to be pushed on the upstream when any changes are made – As Sebastian Karcher explained,”As for Scaffold, the header is written automatically. You should just save the translator from Scaffold and then open it from its location on the hard disk, i.e. in the translators folder in the Zotero data directory.

The translator tests are created automatically when you click on “New Web” in the “Testing” pane in translator while looking at a relevant page. You’ll then want to click “Save” again in Testing once you have all tests and make sure to save your translator (using the “save” icon at the top of Scaffold).”

Points to keep in mind while preparing a documentation that is effective – Sumana taught me this in one of the English learning sessions, ”

Whenever we’re writing something, to inform or persuade someone, if we’re trying to figure out whether something works or why it doesn’t work, it’s helpful to consider:
1. Audience
2. Medium
3. Message

For each section that I’ll write about the Zotero translators, I can take help of

“Claim, link, evidence.”

Claim – What I want to explain?

Link – What is the need and importance of this particular section in the context of the whole documentation?

Evidence – Any resources for the same (links of translators that make use of this section.)

HWZT – Zotero guide, outdated but still has much to teach – http://niche-canada.org/member-projects/zotero-guide/chapter1.html

Common code block for translators -The whole Wiki of zuphilip is interesting, really useful. https://github.com/zuphilip/translators/wiki/Common-code-blocks-for-translators

Place where I’ll create the documentation – Existing page, I’ll edit this one. https://www.mediawiki.org/wiki/Citoid/Creating_Zotero_translators

Place to look for tasks, Zotero & External board https://phabricator.wikimedia.org/tag/citoid/

Research write-up for translators in other languages https://phabricator.wikimedia.org/T160273

Extension: Translate for Hindi page of documentation https://www.mediawiki.org/wiki/Help:Extension:Translate

English Wikipedia talk pagehttps://discord.gg/Ut2S4b5

About commit messages – https://www.mediawiki.org/wiki/Gerrit/Commit_message_guidelines#Body

List of fields in all type : https://aurimasv.github.io/z2csl/typeMap.xml

Webhook_WalkThrough

The line- battles playing in the background, on loop.

Step 0: Fixture is used to provide data- fixture is a collection of data that Django knows how to import into a database.message condition that webhook supports–>text function for it–>fixture for each test

A Fixture is used to provide data- fixture is a collection of data that Django knows how to import into a database.message condition that webhook supports–>text function for it–>fixture for each test

message condition that webhook supports–>text function for it–>fixture for each test

Step 1:

Creating a directory with a python initializing file

Decorators:  You write @login_required before a view, and it magically becomes accessible only to authenticated users. So basically decorator is a function that will decorate the original function we send to it.

What is mypy exactly doing?

Step 2:

The has_request_variable is in zerver/lib/request.py and the api_key_only_webhook_view is in the file zerver/decorator.py

Exploring how to send a message to a real server (like Zulip’s developer server)  through command line, an API zulip-send is there. Currently, I ran into errors trying to make it work and being a Sunday, didn’t get any replies from the mentors.

Day 2:

Step 4: Create test

Okay so almost went through it quickly and skipped the documentation part.

Wanted to get of gist of integrations and I think I got that, things will be clear after implementing this on my own.

Discussions:

https://chat.zulip.org/#narrow/stream/off.20topic/topic/Webhook_walkthrough

https://chat.zulip.org/#narrow/stream/bots/topic/API.20to.20send.20message

Actions speak louder than words

Even if I could write a million words in your love, and not be strong enough to stay with you, the world might see me as a true lover through the words but you dear, don’t fall for me.

Actions speak louder than words. It will always be what I do for you, to what extent I can go to keep you in my life that must make you believe in my love and not my words. Human feelings are never more important than a human life. Never let me feed on your soulful life to suffice the hunger of my forlorn feelings. I am not right for you. It doesn’t have to be give and take, why not, just share. If any one us is giving one’s pieces to fix the other, we aren’t right together. Stay close to someone who brings her/his pieces and together with yours, build one figure.

plants_vs_zombies_plushies_by_arixystix-d4agz7m.jpg

You, my baby, become a plant that knows how to grow, in sunshine and in rains. Don’t become a climber. The moment you feel like you aren’t enough for yourself, go wander and don’t return till you find self-love because only then you will be worth it all.

“Love never keeps a man from pursuing his destiny.”-Paulo Coelho