A summer full of code


Four months of constant coding and excitement comes to an end – I still can’t believe I am saying this. While I am really really happy with how these times went – how fast, how satisfying, how perfectly awesome it went. It is just still hard to believe that it has ended – time flies, literally!

Here goes my wrap-up blogpost for all these months of tireless programming. Here’s to a summer full of code! 🙂

Background

As I have mentioned in my last few blog posts on several updates, I have been working on the Language Coverage Matrix Dashboard project for the Language Engineering Team of Wikimedia Foundation as my Google Summer of Code project. This web-based application automates all the information that are available on the Language related topics that Wikipedia and its Sister project covers – tools they support, languages they have support for, statistics that are available for public use etc. The target users are obviously the researchers, linguists, i18 developers, and even MediaWiki developers concerned about the Language technology, willing to implement somewhere else, you know, for good!

That said, I am going to post here a detailed description of the final product that we have achieved so far.

Demo Instance: http://tools.wmflabs.org/lcm-dashboard/lcmd/

The User Interface

We have actually done a lot of thinking around the user interface throughout the period of GSoC. The final one turned out be quite satisfying. The whole page is now divided into two major parts – a) where all the queries that are available would be displayed. b) the results to show. So, now it has become same for the Language based queries, as well as the tools based ones. Filter is there for the tools based queries.

The diagram of the UI is uploaded on commons. Check it out!

Relevant Code: On GitHub!

LCMD – Landing Page

Basic Functionalities

Now that you’ve seen the UI that we have aimed to achieve. Let’s go deeper into the functionalities.

  • Search

    The whole searching concept has been divided into two parts, two ways, to be specific.

    • Language Based Search: Like you can see from the design and the interface that has been implemented, a search bar for the Language search is there. Essentially you get to search for all the Languages that are on the database of ours, i.e. the ones that are supported by Wikimedia Projects. jQuery.ime – a development work by the Language Engineering developers has been implemented on the search. Language search have features like : Suggestions, Auto-Completion etc, to provide users with more efficient search. Output of the search for a particular language would obviously give all the relevant details that we have for that particular language.

Language Search with autocomplete facility

Language Search with autocomplete facility

Language Search Result

  • Tools Based Search: This is important. This basically a feature to play around all the language data we have. I have got a filter for that – a JS application that filters out all the language data with respect to tools based queries. So, essentially this outputs the languages that support particular tools. Tools based queries work around three basic queries –
    • Input Method
    • Webfonts
    • Internationalization Library
  • Filter: 

    As mentioned above the tools based query part does have this feature where you can filter out all the language data with respect to the tools based query. A JavaScript code runs behind to have this running. Outputs the language names that support the particular tools that may be selected on the radio button

  • API Console

    This is probably my favourite feature from LCMD.  If a third party user wants to fetch these language related data then they can easily get data by calling these APIs. For better understanding of API I have developed API console.
    This is similar to MediaWiki API sandbox. In which you just have to select from dropdown and then press on request button and then “BINGO”. Yes you will find

Language API Console

That is almost what it is. Now a quick overview on how I have developed stuff over time, things I have just described above, and the processes behind. This would also include a few stuff that we changed afterwards. Some of the updates you might have followed on my previous blogposts, this one would work as a summary of those.

June – Community Bonding Period:

  • In the community bonding period I first thought/planned about new technologies which I would be using in my project.
  • Started with the database – created the database schema.
  • All the data was in a spreadsheet –  created one python script so that it could transfer all the data from spreadsheet to database automatically.
  • The week after, I started working on new language entry system, database connection and completed it.
  • Implemented language search system with suggestion for the language names.
  • Implemented the feature to get the language details.

July – Coding out the Functionalities, start!

  • Created and set up primary thing on Wikimedia Labs.
  • Done minor changes in Language Search System.
  • Created on the spot editing facility for any language detail under admin privileges
  • Created Filter Facility
  • Database schema changed
  • jquery based new alternative REST architecture created
  • Language to Font mapping
  • Language to Input method mapping
  • Redefining search implementation

August – Coding, coding, coding!

  • Created login system for admin + session management
  • Designed new UI on langfilter.php page
  • Developed PI visualization chart
  • Developed API for language detail
  • Developed example for API usage
  • Created preview system for new language entry system as well as direct editing feature

September – the last touch.

  • Developed API console for 3rd party user to use these data for their website.
  • Redesigned entire NEW UI as per proposed scheme
  • Small correction in functionality
  • Solved a few bugs

Documentations:

All the things that I have documented so far in these four months, here goes!

A note to thank you all, who were there

I loved living this four months of my life. But, Google Summer of Code is not why I love Wikimedia Foundation. Rather, it is just another event that happened between the Foundation and myself. I have been an active volunteer to Wikimedia projects for a long time now. And, yes, I have been thankful for each and every day I have spent with MediaWiki, Wikipedia and the people around all those projects. GSoC has been a different kind of excitement – recognition feels good. Honestly, it does. But what feels even better than that is to get a merged status on some hundred lines of code that I have written. GSoC has given me many merges – I am thankful for each of them. Runa and Alolita have been amazing mentors to me. For all the things I have done good, for all the pushes I needed to do them that way – they have been there always. Special thanks to Quim, Sumana and Sucheta to help me throughout. I am sure, I am motivated enough to live for another four decades just to code. JUST for the sake of coding. Yes. GSoC definitely played a great part on achieving that motivation.


Here’s to Google Summer of Code!  🙂 🙂

Being Google Summer of Code Intern


I am very excited (and also a little late :D) to share the news that I have been selected as an intern for Google summer of code in Wikimedia Foundation for the project of developing language coverage matrics dashboard for language engineering team of Wikimedia Foundation.

I would like to thank my mentors Runa Bhattacharjee and Alolita Sharma, for guiding me throughout and very special thanks to Amir Aharohi for his valuable inputs for this proposal. Last but not the least special thanks to Sumana and Quim for polishing up my proposal, and the feedbacks all this while.

Being selected as a GSoC intern was finally a good news after quite while. The result came at 12:30 midnight – I couldn’t sleep. Nevertheless, great night it was and so was the news.

Community bonding period started right after. I tinkered around a few new technologies and did the overall planning for my project.

Until June 17

Until June 24

  • Created new language entry system

    Search + New language button

    Search + New language button

    Language Entry form

    Language Entry form

     

  • Created language search system with suggestion

Language search with suggestion facility

Language search with suggestion facility

Language Search result

Language Search result

 

Until July 1

  • created and set up primary thing on wikimedia labs

  • jquery.ime implemented in project

  • done minor changes in language search system

  • created on the spot editing facility for any language detail under admin privileges

Edit button for on the spot editing

Edit button for on the spot editing

when click on edit button this menu will appear

when click on edit button this menu will appear

After saving the changes it will change

After saving the changes it will change

Until July 8

  • set up basic filtering functionality

  • set up some test cases to find smooth and fast filter facility

  • created simple idea of API for language data

Until July 15

  • Created Filtering functionality : By this time, a filtering functionality seemed to be an important feature to have on the LCMD interface. Filtering simply means that there would be a list of the language tools on one side along with checkboxes and the checking those would output the list of the languages that have those tools enabled. So, if say suppose, we have both jquery.ime and jquery.webfonts checked in, the language output will give a list of the common languages with both the tools enabled. This was kind of important. Screen shot and more detail on another blog post.

  • Set up tools instance for project tool instance

  • Set up new repo for project with lots of commits New repo

  • Created simple php API for language data :  Here I have developed a simple prototype version of Language detail APIs so that any website / user want to use that information that can fetch the details using that API

Return dataType is : JSON and if you are using cross domain data transfer then it should be JSONP.


$.ajax({
    url : 'http://tools.wmflabs.org/lcm-dashboard/lcmd/api/php/dataapi.php?query=jquery_ime',
    dataType : 'JSONP',
    type : 'GET',
    //data : 'query=webfonts jquery_ime' ,
    success : function(data){
        console.log(data);
    },
    error : function(data){
        console.log(data);
    })

It will return the data in JSON format.

Beautiful example of this API usage is here

http://mikipedian.blogspot.in/2013/07/i-see-rather-what-all-i-now-visualize.html

 

CoffeeScript – The Awesome way to write JavaScript


Do you struggle with Braces and semicolon in writing code of JavaScript. There is a solution of this problem and that is – CoffeeScript.  In this post I’ll explore  CoffeeScript – a minimalistic language that compiles to JavaScript.

CoffeeScript – The Awesome way to write JavaScript

CoffeeScript

CoffeeScript

CoffeeScript is a little language that compiles into JavaScript. Underneath all those awkward braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

The golden rule of CoffeeScript is: It’s just JavaScript. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings, will work in every JavaScript runtime, and tends to run as fast or faster than the equivalent handwritten JavaScript.

The language adds syntactic sugar inspired by Ruby,Python and Haskell. NO braces and semicolons. Since March 16, 2011, CoffeeScript has been on GitHub‘s list of most-watched projects, and as of 29 August 2012 is the eleventh most popular language on GitHub. CoffeeScript compiles predictably to JavaScript and programs can be written with less code, typically 1/3 fewer lines, with no effect on runtime performance

Syntax of CoffeeScript – Easy to use – Easy to Read

Here I am showing some example.

1. Assignment

str = "CoffeeScript"

2. Function

square = (x) -> x * x

3. Condition

string = "Passed" if  condition

4. Multiply numbers with 2

[1..10].map (i) -> i*2 

5. Object

math =
  root:   Math.sqrt
  square: square
  cube:   (x) -> x * square x

6. Loop

eat food for food in ['toast', 'cheese', 'wine']

CoffeScript vs JavaScript Code

CoffeScript vs JavaScript

Installation

The CoffeeScript compiler is itself written in CoffeeScript, using the Jison parser generator. The command-line version of coffee is available as a Node.js utility. The core compiler however, does not depend on Node, and can be run in any JavaScript environment, or in the browser.

To install, first make sure you have a working copy of the latest stable version of Node.js, and npm(the Node Package Manager). You can then install CoffeeScript with npm:

npm install -g coffee-script

(Leave off the -g if you don’t wish to install globally.)

If you’d prefer to install the latest master version of CoffeeScript, you can clone the CoffeeScriptsource repository from GitHub, or download the source directly. To install the lastest master CoffeeScript compiler with npm:

npm install -g http://github.com/jashkenas/coffee-script/tarball/master

Or, if you want to install to /usr/local, and don’t want to use npm to manage it, open the coffee-script directory and run:

sudo bin/cake install

For More Information and learning
1.http://coffeescript.org
2.http://jashkenas.github.com/coffee-script/documentation/docs/grammar.html

Which is the best siri like app for android?


Answer by Harsh Kothari:

I found out that there are quite a few good Siri alternatives for Android readily available in the Android Market and most of them are free too. Here is quick collection of top free Siri alternatives for Android.

1. Iris

2. Skyvi

 

3. Vlingo Virtual Assistant

 

4. Speaktoit Assistant

View Answer on Quora

Black Hole Mystery Solved


Black holes are an object of research and mystery for the whole scientific community from decades. Many researchers are working day and night to explore the mysteries of black holes. In this series, arecent invention by Yale University Astrophysicist revels the fact that, There is a upper limit of the mass of any black hole. This research has been also published in Monthly Notices of the Royal Astronomical Society.

WHAT ARE BLACK HOLES?

As most of you are aware BLACK HOLE is a region of space in which the gravitational field is so powerful that nothing, not even electromagnetic radiation can escape from it. Dur to this black holes can not be seen (as they absorbs light radiations) but can only be experienced by their ultra strong gravitational pull. That’s why they are named as BLACK HOLE.. They continue to grow in size by absorbing any matter that comes in range of their gravitational field.

HOW MUCH THEY CAN GROW?

Till now it was not sure that what can be maximum size of a black hole. These black holes are now known to exist throughout the Universe and the largest and most massive are at the centers of the largest galaxies. These “ultra-massive” black holes have reported to have mass about One Billion Times that of our own Sun.

 

Black Hole

CONCEPT OF UPPER MASS LIMIT

According to the new research by Priyamvada Natarajan, an Associate Professor of Astronomy and Physics at Yale University and a fellow at the Radcliffe Institute for Advanced Study, it has been proved, that even the biggest of these Black Holes can’t keep growing forever. Instead, they appear to curb their own growth – once they accumulate about10 billion times the mass of the Sun.

Black Hole

THEORY BEHIND THIS RESEARCH

Normally Black Holes continue to accumulate mass by absorbing matter from neighboring gas, dust and stars. But according to new research by Priyamvada Natarajan, that it is possible only to a certain limit, irrespective of the position of black hole. The reason behind this is that, “Eventually these Black Holes reach the point when they radiate so much energy as they consume their surroundings that they end up interfering with the very gas supply that feeds them, which may interrupt nearby star formation.”

EXPERIMENT BY PRIYAMVADA NATARAJAN

Natarajan used existing Optical and X-ray Data of these Ultra-Massive Black Holes to show that, in order for those various observations to be consistent, the black holes must essentially stop at some point in their evolution. This helped her to prove this fact that these black holes can not grow indefinitely in mass and there is some upper mass limit of black holes.

5G Technology


5G Technology

5G phoneTechnology is getting more and more advance now a days. Every day is like a birth day for a new technology. Since the invention of mobile phones each decade seems like we are stepping in to new era of technology. Firstly, we only used wired telephones, then we used cell phones and now here are Smart phones. We all like to have a smart phone in our pocket. This modification of technology is not a result of one night but it has taken many years to establish it. Earlier we have 2G, then there comes 2.5 G and after that 3G, 3.5G and now we are even using 4G(Not for India).What is the benefit of using these smart phones and what is the next in Generation of technology. Here is your answer. It is 5G.



Telephone companies are not using 5G term for this new technology instead they are considering it to say advance 4G. Here in this article I want to share some knowledge about this New Generation technology.

What is 5G ?

Every “G” added to technology refers to advancement in previously available technology. In the same way 5G is the new Generation of mobile and telephony technology. It is said that this will give high bit rate transfer with low costs. It will give high peak rate than the previous one. It is assumed that it will offer low infrastructure deployment cost and high capacity of simultaneous users.

What 5G has for users


As of now, there is a time for 5G to come in the market. But researchers are working to take it to the level which users could not even assume now. Some of the features that 5G will give are listed below

  1. High bit transfer rate
  2. Near about 1 GBPS speed
  3. Low traffic rates
  4. Better coverage
  5. Better security for users
  6. High resolution
  7. Remote Diagnostic
  8. Larger bandwidth

Some differences between 4G and 5G

Right now, 5G is purely an assumption while users are experiencing 4G. There is much to experience in 4G but 5G promise us to give much better features then 4G. I am giving some differences between 4G and 5G

  1. While 4G has bandwidth of 5MHz, it is supposed that 5G would have bandwidth up to 20 MHz (appx.).
  2. 4G does not support multiple user while 5G will have this feature.
  3. 4G offers some type of security for user but 5G would offer higher security.
  4. 5G would have higher bandwidth than 4G
  5. 5G would be cheaper than 4G
  6. There would be high resolution in 5G than 4G.

Researches going on to be implemented in 5G

1. Researchers are working so that the user can simultaneously be connected to several wireless access technologies and can switch between them.
2. Instead of Internet Protocol version 4(IPv4) it will use IPv6.
3. It would have user centric network concept.

There are many other research going on. We hope to see them soon.

Smart phones expected to use 4G and 5G Technology

There are a few smart phones which promises to have 5G in future. In Apple iPhone5 and Nokia morph we would experience this technology. But you have to wait for them.
While if you want to experience a smart phone with 4G technology you can go any of the smart phone written below

  1.  Apple iPhone 4s
  2.  Nokia Lumia 900
  3.  HTC Titan 2

CERN Experiment – particle consistent with long-sought Higgs boson


Topology of CERN Experiment

Geneva, 4 July 2012. At a seminar held at CERN today as a curtain raiser to the year’s major particle physics conference, ICHEP2012 in Melbourne, the ATLAS and CMS experiments presented their latest preliminary results in the search for the long sought Higgs particle. Both experiments observe a new particle in the mass region around 125-126 GeV.

“We observe in our data clear signs of a new particle, at the level of 5 sigma, in the mass region around 126 GeV. The outstanding performance of the LHC and ATLAS and the huge efforts of many people have brought us to this exciting stage,” said ATLAS experiment spokesperson
“but a little more time is needed to prepare these results for publication.”

LHC

“The results are preliminary but the 5 sigma signal at around 125 GeV we’re seeing is dramatic. This is indeed a new particle. We know it must be a boson and it’s the heaviest boson ever found,” said CMS experiment spokesperson Joe Incandela. “The implications are very significant and it is precisely for this reason that we must be extremely diligent in all of our studies and cross-checks.”

Topology of LHC

“It’s hard not to get excited by these results,” said CERN Research Director Sergio Bertolucci. “ We stated last year that in 2012 we would either find a new Higgs-like particle or exclude the existence of the Standard Model Higgs. With all the necessary caution, it looks to me that we are at a branching point: the observation of this new particle indicates the path for the future towards a more detailed understanding of what we’re seeing in the data.”

The results presented today are labelled preliminary. They are based on data collected in 2011 and 2012, with the 2012 data still under analysis.  Publication of the analyses shown today is expected around the end of July. A more complete picture of today’s observations will emerge later this year after the LHC provides the experiments with more data.

The next step will be to determine the precise nature of the particle and its significance for our understanding of the universe. Are its properties as expected for the long-sought Higgs boson, the final missing ingredient in the Standard Model of particle physics? Or is it something more exotic? The Standard Model describes the fundamental particles from which we, and every visible thing in the universe, are made, and the forces acting between them. All the matter that we can see, however, appears to be no more than about 4% of the total. A more exotic version of the Higgs particle could be a bridge to understanding the 96% of the universe that remains obscure.

“We have reached a milestone in our understanding of nature,” said CERN Director General Rolf Heuer. “The discovery of a particle consistent with the Higgs boson opens the way to more detailed studies, requiring larger statistics, which will pin down the new particle’s properties, and is likely to shed light on other mysteries of our universe.”

Positive identification of the new particle’s characteristics will take considerable time and data. But whatever form the Higgs particle takes, our knowledge of the fundamental structure of matter is about to take a major step forward.