Sunday, December 21, 2014

Using browser versus app to deliver your services on mobile devices

The full fledged mobile computing devices are far more common these days than the desktops had ever been. The websites are delivering services more to mobile devices than the desktops. Google now claims to get more searches through the mobile devices these days.

Today most websites will ask you to download their app and install on your mobile device. With package managers like "Google Play Store" people find it extremely easy to do so. Just with a single click and a disclaimer of all possible privacy violations, people install the mobile app.

It is strange that html browser that has been the de facto standard for delivering content and untrusted code has been swiftly replaced by the mobile app. Browsers provide security from untrusted code as the exposed scripting language like javascript is managed code wih limited functionality. In cases where people install "native code" like Adobe Flashplayer, people are at mercy of the "severe bugs" in flashplayer that keep appearing every week. No doubt today that social engineering attacks targeting vulnerable flash player has been quite common on facebook.  Javascript engines never had that many issues.

If installing any "native code" is so dangerous, the obvious question is how come folks are installing mobile apps from untrusted sources without any second thoughts? Some would argue that Android provides a Java framework and so all apps are written in Java and so there is little chance of having vulnerable programs. That is quite untrue as apps are allowed to bundle native code that they can be invoked through the JNI interface. Bugs in native code could be exploited by any other untrusted app.

Beside security, mobile apps have also turned the head upside down on traditionally asynchronous applications. For example, I used to open up a mail app to check for new mails. With the mobile apps, it will beep you everytime you get a mail. And yes not all mails deserve my attention immediately. So converting asynchronous applications into synchronous ones provide little utility and very annoying beeps.

Some people believe searching the app is faster than typing it on browser. But today's browsers provide easy navigation by using bookmarks and clickable thumbnails. So that argument is also spacious.

Lastly, there are many sensors in a mobile device (like GPS, compass etc) that can be used by a mobile app to deliver better services. While HTML 5 has incorporated some of these sensors,  that remains the perhaps only legitimate resign for installing a mobile application.


Saturday, October 4, 2014

Enigma of missing court judgments in Indian Kanoon

I got a mail from Raghav Das saying that a judgment from Supreme Court related to cow protection State of Gujarat Vs. Mirzapur Moti Kureshi Kassab Jamat & Ors 26th October, 2005 is missing. There is only a dissenting opinion from Justice A Mathur available on the website. The main opinion was indeed missing.

In trying to avoid duplicate judgments from the court, the Indian Kanoon crawler missed downloading the opinion from the main bench. The bug has been fixed and Justice Lahoti opinion for the main bench is available here The combined judgments are also available now here.

Thanks Raghav for reporting the problem! It exposed an important bug in the system and the entire SC website will be re-crawled to fix any other missing judgment.

Tuesday, September 16, 2014

Making Indian Kanoon the gold standard for legal research

A new release was rolled out on Sunday in an effort to make Indian Kanoon the gold standard for legal research in India. The release consisted of a lot of user visible changes and includes all changes that were planned in July. While some of these changes are related to improving the infrastructure, most of the changes have come from people complains and the problems they have been facing while using Indian Kanoon. Here are the broad list of changes:

1. Removed duplicate judgments: Many court websites in India have separate urls for each case number even when these cases are combined and only one judgment is delivered. The new release ensures duplicate judgments are filtered out.

2. Improved the judgment layout: The new release removes page numbers and case numbers that are sprinkled in the judgment. Also new code has been developed to identify paragraphs, quotes and tables so that judgment could be laid out in an appealing format.

3. Improved PDF copy: htmldoc is enhanced to generate PDF output using a more readable Georgia font using the approach here.

4. Consumer Court judgments added: Roughly 1 lakh (100K) judgments from National and State Consumer Redressal Commission have been added to the Indian Kanoon database. New cases from these commissions will also get updated every day. For example look at the consumer cases against  airtel here.

5. Improved titles for Bombay, Kolkata, Andhra and Kerala high court: Since these courts do not provide meta information, the petitioner and such details are extracted from the free text. Earlier there were a lot of error in these extractions.

6.  New Design:  A new center based design was rolled out on Sunday. Do let me know of any usability issues you have encountered in the new design.

7. Software updated: The entire software stack was updated including the kernel on the production host. For the first time it has been achieved without any downtime or any user experience issues. Also for the first time the production traffic was served on Sunday using a multi-node setup. It is not a user facing change.